1
resposta

docker-compose context vs "." no dockerfile

Olá pessoal,

No arquivo: "alura-docker-cap06\docker\alura-books.dockerfile",

Segundo a cláusula COPY, ele ira copiar todo o conteúdo do diretório atual ".", para o diretório "/var/www":

FROM node:latest
LABEL maintainer="Douglas Quintanilha"
ENV NODE_ENV=development
COPY . /var/www
WORKDIR /var/www
RUN npm install 
ENTRYPOINT ["npm", "start"]
EXPOSE 3000

Porém o diretório onde se encontra esse dockerfile só há arquivos dockerfile e a pasta "config".

após rodar o comando "docker-compose up", rodei os seguintes comandos:

PS C:\Users\italo_docker\Desktop\alura-docker-cap06> docker exec -it alura-books-1 /bin/bash
root@fd111cdfeffe:/var/www# ls
README.md  config  database.js  docker  docker-compose.yml  models  node_modules  package-lock.json  package.json  public  routes  server.js  views
root@fd111cdfeffe:/var/www# exit
PS C:\Users\italo_docker\Desktop\alura-docker-cap06>

E constatei que, na verdade, foi copiado toda a raiz do projeto.

Estou correto em assumir que a cláusula "build:context" no "docker-compose.yml" faz um override no que os dockerfiles consideram como "."?

Para mim essa é a única explicação.

Obrigado!

1 resposta

Olá, Ítalo.

Acredito que o "." depende de onde você está rodando o comando. Por exemplo: se estou no diretório /var e faço o build do dockerfile, ele vai utilizar como contexto /var.

Espero ter ajudado.