Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

312
Vistas
Docker no crea un nuevo contenedor cuando se usa la compilación docker-compose

Configuré dos contenedores de Windows para el servidor ASP.NET y MSSQL. En la primera compilación de docker-compose, todo funciona como se esperaba. Luego, después de realizar algunos cambios en el archivo acoplable personalizado y ejecutar la compilación docker-compose nuevamente, usa el contenedor anterior nuevamente, sin realizar ningún cambio.

Supuse que cuando hice una compilación, creó un nuevo contenedor. ¿Estoy malinterpretando cómo funciona la ventana acoplable?

Este es el docker-compose.yml

 version: '3' services: db: image: microsoft/mssql-server-windows-developer environment: sa_password: "Password1234!" ACCEPT_EULA: "Y" ports: - "8003:1433" build: context: . dockerfile: mssql.dockerfile web: build: context: . dockerfile: web.dockerfile image: mcr.microsoft.com/dotnet/framework/aspnet:4.8 #volumes: # - .:C:/inetpub/wwwroot ports: - "8080:80" - "8081:431"

Este es el archivo mssql.docker

 # escape=` FROM microsoft/mssql-server-windows-developer #set shell SHELL ["powershell.exe", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] #make temp folder RUN mkdir C:\temp #copy script to temp folder COPY DownloadDatabase.ps1 C:\temp COPY RestoreDatabase.ps1 C:\temp #run script to retrieve production database WORKDIR C:\temp RUN .\DownloadDatabase.ps1 -sourcefile <url> -destinationfile <target> CMD .\RestoreDatabase.ps1

Es muy fácil saber si la imagen ha sido reutilizada porque mkdir C:\temp da un error diciendo que el directorio ya existe.

EDITAR: ya probé todas las opciones en docker compose. sin caché, force-rm

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

docker-compose build

Solo construye imágenes pero no inicia contenedores.

Es por eso que no se aplican sus cambios en dockerfile. Ha reconstruido la imagen pero no el contenedor. Es la razón por la que el contenedor que se lanzó anteriormente se basa en la versión anterior de la imagen.

 docker-compose up

De la documentación de Docker:

Si hay contenedores existentes para un servicio y la configuración o la imagen del servicio se cambió después de la creación del contenedor, docker-compose up recoge los cambios al detener y volver a crear los contenedores (preservando los volúmenes montados). Para evitar que Compose detecte los cambios, use la marca --no-recreate.

Para asegurarse de que tanto su imagen como su contenedor se reconstruyen, debe agregar estas banderas:

 docker-compose up --force-recreate --build

De esa manera, sus contenedores se basan en la versión de imagen correcta.

Explicación sobre las banderas de la documentación de Docker:

 --build Build images before starting containers. --force-recreate Recreate containers even if their configuration and image haven't changed.

Si desea hacer esto para un servicio específico, simplemente agregue el nombre del servicio al final de la línea de comando:

 docker-compose up --force-recreate --build serviceName

Otro indicador útil si desea una salida clara es el indicador -d :

 -d, --detach Detached mode: Run containers in the background, print new container names. Incompatible with
over 4 years ago · Santiago Trujillo Denunciar

0

¡Resulta que simplemente tuve que hacer docker-compose pull antes docker-compose build para actualizar el dockerfile! ¡Ahora construye una imagen fresca cada vez!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda