0

I'm facing a problem on my production server with a container that contains the latest version of the image but when I'm executing it, the content is not the last one.

To update docker images, I execute a little script with theses commands

docker-compose pull
docker-compose up -d --remove-orphans
docker-compose prune -fa

Of course, the image used in the docker service is with the latest tag

image: registry.gitlab.com/xxxxx/api:latest

Here is two screenshots with the container and the image content to see the differences

Container content

Image content

Here is my docker-compose.yml

version: '3.3'

services:
  traefik:
    image: "traefik:v2.4"
    container_name: "traefik"
    command:
      - "--api"
      - "--providers.docker"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.address=:80"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=com@xxxxx.com"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
      - "--pilot.token=xxxxx"
    ports:
      - 80:80
      - 443:443
    volumes:
      - "./letsencrypt:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    labels:
      # dashboard
      - "traefik.http.routers.monitor.service=api@internal"
      - "traefik.http.routers.monitor.rule=Host(`monitor.xxxxx.com`)"
      - "traefik.http.routers.monitor.entrypoints=websecure"
      - "traefik.http.routers.monitor.tls.certresolver=myresolver"

      # global redirect to https
      - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
      - "traefik.http.routers.http-catchall.entrypoints=web"
      - "traefik.http.routers.http-catchall.middlewares=redirect-to-https"

      # middleware redirect
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"

  api:
    image: registry.gitlab.com/xxxxx/api:latest
    ports:
      - 4200:8080
    volumes:
      - api-data:/app
    depends_on:
      - db
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.api.rule=Host(`api.xxxxx.com`)"
      - "traefik.http.routers.api.entrypoints=websecure"
      - "traefik.http.routers.api.tls.certresolver=myresolver"

  front:
    image: registry.gitlab.com/xxxxx/front:latest
    ports:
      - 3000:3000
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.front.rule=Host(`dev.xxxxx.com`)"
      - "traefik.http.routers.front.entrypoints=websecure"
      - "traefik.http.routers.front.tls.certresolver=myresolver"

  panel:
    image: registry.gitlab.com/xxxxx/panel:latest
    ports:
      - 3001:3000
    depends_on:
      - api
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.panel.rule=Host(`admin.xxxxx.com`)"
      - "traefik.http.routers.panel.entrypoints=websecure"
      - "traefik.http.routers.panel.tls.certresolver=myresolver"

  coming-soon:
    image: registry.gitlab.com/xxxxx/coming-soon:latest
    ports:
      - 3002:3000
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.coming-soon.rule=Host(`xxxxx.com`) || Host(`www.xxxxx.com`)"
      - "traefik.http.routers.coming-soon.entrypoints=websecure"
      - "traefik.http.routers.coming-soon.tls.certresolver=myresolver"

  db:
    image: postgres
    ports:
      - 5432:5432
    volumes:
      - db-data:/var/lib/postgresql/data/
    env_file:
      - .env
    restart: always

  adminer:
    image: dpage/pgadmin4
    ports:
      - 5000:80
    volumes:
      - adminer-data:/root/.pgadmin
    env_file:
      - .env
    depends_on:
      - db
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.adminer.rule=Host(`adminer.xxxxx.com`)"
      - "traefik.http.routers.adminer.entrypoints=websecure"
      - "traefik.http.routers.adminer.tls.certresolver=myresolver"

  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    deploy:
      mode: replicated
      replicas: 2
      update_config:
        parallelism: 4
        delay: 30s

volumes:
  db-data:
  api-data:
  adminer-data:
Hugo Sohm
  • 2,872
  • 4
  • 23
  • 40

0 Answers0