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

734
Visualizações
Docker COPY no actualiza los archivos al reconstruir el contenedor

Tengo un archivo docker-compose-staging.yml que estoy usando para definir una aplicación PHP. He definido un contenedor de volumen de datos (aplicación) en el que reside el código de mi aplicación y se comparte con otros contenedores mediante volumes_from.

ventana acoplable-componer-puesta en escena.yml:

 version: '2' services: nginx: build: context: ./ dockerfile: docker/staging/nginx/Dockerfile ports: - 80:80 links: - php volumes_from: - app php: build: context: ./ dockerfile: docker/staging/php/Dockerfile expose: - 9000 volumes_from: - app app: build: context: ./ dockerfile: docker/staging/app/Dockerfile volumes: - /var/www/html entrypoint: /bin/bash

Este docker-compose-staging.yml en particular se usa para implementar la aplicación en un proveedor de nube (DigitalOcean), y el Dockerfile para el contenedor de la aplicación tiene comandos COPY que copian carpetas desde el directorio local al volumen definido en la configuración.

ventana acoplable/puesta en escena/aplicación/Dockerfile:

 FROM php:7.1-fpm COPY ./public /var/www/html/public COPY ./code /var/www/html/code

Esto funciona cuando compilo e implemento la aplicación por primera vez. El código en mis directorios público y de código está presente y es correcto en el servidor remoto. Despliego usando el siguiente comando:

 docker-compose -f docker-compose-staging.yml up -d

Sin embargo, luego intento agregar un archivo a mi directorio público local, luego ejecuto el siguiente comando para reconstruir el código actualizado:

 docker-compose -f docker-compose-staging.yml build app

El resultado de esta reconstrucción sugiere que los comandos COPY fueron exitosos:

 Building app Step 1 : FROM php:7.1-fpm ---> 6ed35665f88f Step 2 : COPY ./public /var/www/html/public ---> 4df40d48e6a5 Removing intermediate container 7c0fbbb7f8b6 Step 3 : COPY ./code /var/www/html/code ---> 643d8745a479 Removing intermediate container cfb4f1a4f208 Successfully built 643d8745a479

Luego implemento usando:

 docker-compose -f docker-compose-staging.yml up -d

Con la siguiente salida:

 Recreating docker_app_1 Recreating docker_php_1 Recreating docker_nginx_1

Sin embargo, cuando inicio sesión en los contenedores remotos, los cambios de archivo no están presentes.

Soy relativamente nuevo en Docker, así que no estoy seguro de haber entendido mal alguna parte de este proceso. Cualquier orientación sería apreciada.

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

0

Esto se debe a la memoria caché.

Correr,

 docker-compose build --no-cache

Esto reconstruirá las imágenes sin usar ningún caché.

Y luego,

 docker-compose -f docker-compose-staging.yml up -d
over 4 years ago · Santiago Trujillo Relatório

0

Estaba luchando con el hecho de que las migraciones no se detectaron ni se realizaron. Encontré este hilo y noté que la causa principal era, de hecho, que los archivos no se actualizaban en el contenedor. La solución de recreación forzada sugerida anteriormente resolvió el problema para mí, pero me resulta engorroso tener que tratar de recordar cuándo hacerlo y cuándo no. Por ejemplo, los archivos relacionados con Vue parecen funcionar bien, pero los archivos relacionados con Django no.

Así que pensé por qué no intentar ajustar el archivo Docker para limpiar los archivos anteriores antes de la copia:

 RUN rm -rf path/to/your/app COPY . path/to/your/app

Trabajado como un encanto. Ahora es parte de la compilación y todo lo que necesita es ejecutar docker-compose up -d --build nuevamente. Los archivos están actualizados y puede ejecutar realizar migraciones y migrar contra sus contenedores.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve un problema similar, si no el mismo, mientras trabajaba en la aplicación dotnet core.

Lo que intentaba hacer era reconstruir mi aplicación y hacer que actualizara la imagen de mi ventana acoplable para poder ver mis cambios reflejados en la copia en contenedor.

Así que comencé eliminando la imagen subyacente generada por docker-compose up usando el comando para reflejar mis cambios:

 docker rmi *[imageId]*

Creo que debería haber soporte para esto en docker-compose pero esto fue suficiente para mi necesidad en este momento.

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