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

319
Visualizações
Montar un volumen sobrescribe los archivos almacenados en la imagen de Docker

Estoy tratando de contener el front-end de mi sitio web y automatizar su implementación. Mi objetivo es poder generar y alojar una nueva imagen cuando se envía un cambio, y hacer que el servidor la busque automáticamente y reinicie el contenedor. Estos son los pasos que estoy tomando:

  1. Creo la imagen creando primero mi aplicación Node y luego agrupando los archivos de configuración de distribución y nginx en la última imagen de linuxserver/letsencrypt . Este es el Dockerfile:

     # Use the NodeJS image as builder FROM node:alpine AS builder # Create the workspace RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Copy the package file and source code COPY package.json /usr/src/app COPY . ./ # Install dependencies RUN npm install # Build the application RUN npm run build # The nginx server, this builds the final image FROM linuxserver/letsencrypt # Copy the nginx configuration COPY ./config/nginx.conf /config # Copy the output of the builder COPY --from=builder /usr/src/app/dist /config/www # Inform Docker to listen on port 443 and 80 EXPOSE 443 80
  2. Esta imagen se carga en el registro de paquetes de GitHub y busco actualizaciones usando Watchtower .

  3. La imagen se inicia con este archivo docker-compose:

     version: "3" services: ... frontend: image: [IMAGE] container_name: frontend cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=[TIMEZONE] - URL=[URL] - SUBDOMAINS=www, - VALIDATION=http ports: - 443:443 - 80:80 volumes: - ./frontend:/config restart: unless-stopped ...

El problema es que los archivos que se empaquetaron en la imagen usando la instrucción COPY se sobrescriben cuando uso la siguiente línea en mi docker-compose:

 volumes: - ./frontend:/config

Si elimino esa sección de mi archivo docker-compose, todo funciona bien, sin embargo, esta no es una solución porque esa carpeta almacena datos importantes.

He leído que montar un volumen sobrescribe por completo cualquier dato anterior, sin embargo, me gusta el hecho de que puedo cargar fácilmente la imagen en mi servidor y tener todos los archivos necesarios ya integrados. ¿Hay algo que pueda hacer para solucionar mi problema o estoy malinterpretando/usando mal las imágenes de la ventana acoplable?

Intenté configurar el volumen para leer solo como se sugiere aquí , sin embargo, esto no funcionó y, en cambio, provocó que la imagen se detuviera y reiniciara continuamente.

También he leído brevemente acerca de los montajes de enlace y me pregunto si serán de alguna utilidad.

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

0

Se espera este comportamiento. Los montajes de Docker funcionan de la misma manera que los montajes de Linux, es decir, sobrescriben el contenido del directorio de destino con el contenido del directorio de origen.

Mi sugerencia es utilizar otro directorio de destino para su volumen, por ejemplo

 volumes: - ./frontend:/someotherdir

Y luego ajuste su configuración nginx para buscar archivos JS allí.

over 4 years ago · Santiago Trujillo Relatório

0

Descubrí que podía retener los datos en la imagen creando primero un volumen con nombre :

 volumes: frontend_data:

Y luego montando el contenedor a ese volumen:

 services: frontend: ... volumes: - frontend_data:/config ...
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