Eu criei uma imagem do Docker do banco de dados Oracle com a ajuda deste link
SYSTIMESTAMP
mostra a hora UTC e não a hora da minha máquina local.
kaushik:~ knayak$ date
Fri Jun 8 17:46:35 IST 2018
select current_timestamp,systimestamp from dual;
CURRENT_TIMESTAMP SYSTIMESTAMP
------------------------------------------- ----------------------------------
08-06-18 05:47:51.742216000 PM ASIA/KOLKATA 08-06-18 12:17:51.742211000 PM GMT
Como posso alterar o horário do contêiner para corresponder ao meu fuso horário?
O problema não é com seu banco de dados, é o problema do docker.
O Docker tem problemas notórios com a sincronização de tempo entre a máquina host e as máquinas virtuais ("contêineres"...).
A solução mais simples para o problema se você iniciar o contêiner docker com privilégios de administrador (
--privileged
sinalizar paradocker run
) e usar uma ferramenta de sincronização de tempo dentro do contêiner para corrigir seu tempo (ntpdate -s your.country.clock
).Pesquisei e tentei várias opções e, finalmente, o que funcionou para mim: -
Faça login como usuário root no contêiner:
Verifique o
/etc/localtime
arquivo que estaria apontando para UTCRemova o arquivo e crie um novo softlink para apontar para o arquivo correspondente ao seu fuso horário local.
Saia do shell e reinicie o contêiner.
Verifique a saída da consulta e parece bem.
Os comandos ou o
localtime
arquivo podem variar dependendo do sistema operacional emulado pelo Docker. No meu caso, era x86_64 GNU/Linux.