Executando verificação de segurança...
1

Dúvidas Docker

Então, iniciei com Docker recentemente, e minha dúvida é a seguinte:

Tenho uma pasta raiz sendo /app e dentro desse diretório tenho /backend e /frontend.

Em ambas pastas (backend e frontend), tenho Dockerfile pra gerar as imagens.

Na raiz (/app), tenho um arquivo docker-compose.yml pra gerar os containers, onde passo como serviço o backend, frontend e o restante dos serviços necessários (como database).

Está correto fazer isso?

Em ambos tenho meus arquivos .env que estão dentro do .dockerignore, então eles não sobem junto com o container. Dentro da pipeline, posso fazer ele copiar dando um COPY .env.example .env, mas como altero o valor das variaveis dentro do container?

Diagrama pra representar estrutura das pastas:

graph TD
App --> Backend
App --> Frontend
App --> docker-compose.yml
Frontend --> Dockerfile
Backend --> Dockerfile

Agradeço!

Carregando publicação patrocinada...
3

Eu geralmetne deixo os .env junto com o docker-compose.yml.

Dentro da pipeline, posso fazer ele copiar dando um COPY .env.example .env, mas como altero o valor das variaveis dentro do container?

Isso deve ser resolvido na hora do deploy. com o github-actions dá pra colocar um arquivo inteiro (.env) ou as variáveis desse arquivo. O pipeline deve montar seu arquivo .env final

PS: pra isso o .env não pode estar dentro do container, tem que ser motnado fora e copiado depois pra lá

1

Então no caso você junta o .env do FRONTEND e do BACKEND em um único arquivo?
E a estrutura dos Dockerfiles e do docker-compose estão corretas?

Agradeço =D

2

Não, eu faria backend.env e frontend.env, mas isso se deve a minha organização pessoal

PS: não tenho nenhum projeto que tem mais de um servidor na mesma pasta assim, geralmente 1 server = 1 pasta totalmente independente

Mas você pode continuar na sua organização, apenas falei como faço, não que a minha é a forma correta.

E a estrutura dos Dockerfiles e do docker-compose estão corretas?

Se você encontrar todos os arquivos e estiver claro onde tudo está qualquer organização está correta.

Não existe um padrão para onde ficam os arquivos dentro de um projeto (em relação ao docker) e eu geralmente uso assim:

/app/
   - aplicação/
      - docker-compose.yml [link simbolico para /app/[aplicação]/project/docker/[ambiente]/docker-compose.yml]
      - .env
      - project/
         - [all project files]
         - docker/
            - production/
               - docker-compose.yml
               - Dockerfile
            - homologation/
               - docker-compose.yml
               - Dockerfile
            - development/
               - docker-compose.yml
               - Dockerfile

Lembrando que essa é minha organização pessoal

Você pode seguir assim, pode criar a sua própria, não existe certo e errado desde que fique facil configurar e funcione

0