Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

320
Visualizações
¿Cuál es el punto de WORKDIR en Dockerfile?

Estoy aprendiendo Docker. Muchas veces he visto que Dockerfile tiene el comando WORKDIR :

 FROM node:latest RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app/ RUN npm install COPY . /usr/src/app EXPOSE 3000 CMD [ “npm”, “start” ]

¿No puedo simplemente omitir WORKDIR y Copy y simplemente tener mi Dockerfile en la raíz de mi proyecto? ¿Cuáles son las desventajas de usar este enfoque?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Según la documentación :

La instrucción WORKDIR establece el directorio de trabajo para cualquier instrucción RUN, CMD, ENTRYPOINT, COPY y ADD que le sigue en el Dockerfile. Si WORKDIR no existe, se creará incluso si no se usa en ninguna instrucción posterior de Dockerfile.

Además, en las mejores prácticas de Docker te recomienda usarlo:

... debe usar WORKDIR en lugar de proliferar instrucciones como RUN cd ... && do-something, que son difíciles de leer, solucionar problemas y mantener.

Yo sugeriría mantenerlo.

Creo que puedes refactorizar tu Dockerfile a algo como:

 FROM node:latest WORKDIR /usr/src/app COPY package.json . RUN npm install COPY . ./ EXPOSE 3000 CMD [ "npm", "start" ]
over 4 years ago · Santiago Trujillo Relatório

0

no tienes que hacerlo

RUN mkdir -p /usr/src/app

Esto se creará automáticamente cuando especifique su WORKDIR

 FROM node:latest WORKDIR /usr/src/app COPY package.json . RUN npm install COPY . ./ EXPOSE 3000 CMD [ “npm”, “start” ]
over 4 years ago · Santiago Trujillo Relatório

0

Puede pensar en WORKDIR como un cd dentro del contenedor (afecta a los comandos que vienen más adelante en RUN , como el comando EJECUTAR). Si eliminó WORKDIR en su ejemplo anterior, RUN npm install no funcionaría porque no estaría en el directorio /usr/src/app dentro de su contenedor.

No veo cómo se relaciona esto con el lugar donde coloca su Dockerfile (ya que la ubicación de su Dockerfile en la máquina host no tiene nada que ver con el pwd dentro del contenedor). Puede colocar el Dockerfile donde desee en su proyecto. Sin embargo, el primer argumento para COPY es una ruta relativa, por lo que si mueve su Dockerfile, es posible que deba actualizar esos comandos COPY .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda