Fala professor, tranquilo? Conteúdo muito bom. Parabéns. Tenho uma dúvida. Eu instalei o Docker em um controlador, para poder usar o BD MySql. A intenção é realizar gravação de dados para a governança da empresa poder emitir relatórios. Enfim... Na tabela criada há o campo Data/Hora, mas a Data/Hora do MySql não está com timezone configurado para America/Sao_Paulo e está apresentando um horário com 3h adiantado. Gostaria de saber como faço para sincronizar o timezone da máquina com o container MySql. Tentei alterando diretamente no Banco de Dados, mas sempre que reinicia o serviço retorna a configuração default. Há, se puder, envie-me o seu e-mail.
Obrigado, sobre sua dúvida para resolver isso você pode montar um volume quando subir o container para que o mesmo pegue o horário da máquina host e insira no container, segue exemplo: docker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=teste \ -v /etc/localtime:/etc/localtime:ro \ mysql:latest O trecho -v /etc/localtime:/etc/localtime:ro é um comando de montagem de volume usado no Docker para compartilhar o arquivo de timezone (/etc/localtime) da máquina host com o container. Se for no Dockerfile pode configurar dessa maneira: # Usa a imagem oficial do MySQL como base FROM mysql:latest # Instala o pacote tzdata para configuração de timezone RUN apt-get update && apt-get install -y tzdata # Define o timezone como America/Sao_Paulo ENV TZ=America/Sao_Paulo # Configura o timezone no sistema RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # Define a senha do root (substitua "sua_senha" pela senha desejada) ENV MYSQL_ROOT_PASSWORD=sua_senha # Exponha a porta padrão do MySQL EXPOSE 3306 # Comando para iniciar o MySQL CMD ["mysqld"] Acredito que isso possa resolver seu problema.
Essa questão do nome ao invés da porta pode ser feita da seguinte forma, a porta você pode colocar 80 pois assim não precisa digitar porta no navegador porque a 80 é padrão do HTTP, sobre o nome você pode criar a página web com o nome que você deseja dentro do caminho da pasta do nginx /usr/share/nginx/html/
Conteúdo top, não conhecia essa forma de subir os containers usando só o dockerfile e nem que tinha como subir um arquivo compactado
Vlw Adelino, seja bem vindo ao canal, ainda virão mais conteúdos desse tipo, não esquece de se inscrever e ativar o sininho.
Excelente!!! Parabéns pelo conteúdo bem direcionado.
Obrigado Tarsio, seja bem vindo ao canal
Aula top, estava procurando por dockerfile, mas assisti a aula toda
Que bom que gostou fico muito feliz em poder contribuir, e virão mais conteúdos.
Fala professor, tranquilo? Conteúdo muito bom. Parabéns. Tenho uma dúvida. Eu instalei o Docker em um controlador, para poder usar o BD MySql. A intenção é realizar gravação de dados para a governança da empresa poder emitir relatórios. Enfim... Na tabela criada há o campo Data/Hora, mas a Data/Hora do MySql não está com timezone configurado para America/Sao_Paulo e está apresentando um horário com 3h adiantado. Gostaria de saber como faço para sincronizar o timezone da máquina com o container MySql. Tentei alterando diretamente no Banco de Dados, mas sempre que reinicia o serviço retorna a configuração default. Há, se puder, envie-me o seu e-mail.
Obrigado, sobre sua dúvida para resolver isso você pode montar um volume quando subir o container para que o mesmo pegue o horário da máquina host e insira no container, segue exemplo:
docker run -d \
--name mysql \
-e MYSQL_ROOT_PASSWORD=teste \
-v /etc/localtime:/etc/localtime:ro \
mysql:latest
O trecho -v /etc/localtime:/etc/localtime:ro é um comando de montagem de volume usado no Docker para compartilhar o arquivo de timezone (/etc/localtime) da máquina host com o container.
Se for no Dockerfile pode configurar dessa maneira:
# Usa a imagem oficial do MySQL como base
FROM mysql:latest
# Instala o pacote tzdata para configuração de timezone
RUN apt-get update && apt-get install -y tzdata
# Define o timezone como America/Sao_Paulo
ENV TZ=America/Sao_Paulo
# Configura o timezone no sistema
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Define a senha do root (substitua "sua_senha" pela senha desejada)
ENV MYSQL_ROOT_PASSWORD=sua_senha
# Exponha a porta padrão do MySQL
EXPOSE 3306
# Comando para iniciar o MySQL
CMD ["mysqld"]
Acredito que isso possa resolver seu problema.
E se eu quiser colocar um nome ao invés da porta 8080.
Tipo colocar o nome site
É possível?
Essa questão do nome ao invés da porta pode ser feita da seguinte forma, a porta você pode colocar 80 pois assim não precisa digitar porta no navegador porque a 80 é padrão do HTTP, sobre o nome você pode criar a página web com o nome que você deseja dentro do caminho da pasta do nginx /usr/share/nginx/html/