Mam najwięcej frustrującego problemu z Docker-Compose:

Wepchnąłem nowy obraz do Gitlab, uruchomić doker, skomponuj na serwerze i .. stary obraz działa.

  • Ponownie uruchomiłem doker
  • Czyściłem wszystko (wszystkie obrazy i wszystkie kontenery)
  • Dokonałem doktora-komponuj ciągnąć podążając
  • Próbowałem Docker-Compose - Porozumienia
  • Wyszukałem / Var / LIB / Docker / Image

I ... Nadal dostaję pojemnik ze starym obrazem. Nie wiem nawet, gdzie dostaje wizerunek, ponieważ wymazałem je Docker RMI ...

Teraz, jeśli zrobię doker, uruchomić GitlabimagePath, nowy obraz działa prawidłowo. Tak więc na tym samym komputerze kwestia jest szczególnie dzieje się z Docker-Compose, a nie z Docker.

Docker-Compose Pull otrzymuje obraz z odpowiednim trawieniem. Kiedy uruchamiam go z dokerem-komponuj i zdobądź stary obraz, lub biegam z dokowcem, inspekcja daje ten sam obraz Sha256. Wygląda więc na to, że jest jakiś stary kontener, który utrzymuje się wskrzeszanie do dokera-kompozycjonowania i nigdy nie zostaje odbudowany

Nie mogę wymyślić lepszego pytania niż "co do diabła?"

Nic z tego podobnego pytania Docker-Compose utrzymuje używanie starej zawartości obrazu pomaga w ogóle.

Skomponować dokera jest bardzo podstawowy:

version: '3.3'

services:
  leech:
    container_name: services_leech
    image: registry.gitlab.com/...:latest
    restart: unless-stopped
    volumes:
      - volume-leech:/app
    networks:
      - default

volumes:
  volume-leech:

networks:
  default:
    external:
      name: leech-network

Więc jeden stały objętość przechowywania i to jest to.

1
Thomas 29 lipiec 2020, 21:00

1 odpowiedź

Najlepsza odpowiedź

Gdy zadeklaruj nazwany głośność, który ma być zamontowany na /app:

volumes:
  - volume-leech:/app

Zarówno kod aplikacji, jak i jego lokalne dane są przechowywane w objętości. Docker nie ma sposobu, aby to powiedzieć, więc nawet gdy podstawowy obraz zostanie zaktualizowany, starszy kod w objętości wiruje pierwszeństwo.

Jeśli możesz ponownie skonfigurować lub zrestrukturyzować aplikację, aby zapisać swoje dane gdzieś indziej, możesz zmienić konfigurację dokera do

volumes:
  - volume-leech:/app/data

A następnie główny kod w /app pochodzi z obrazu, a tylko dane będą przechowywane w wymienionej głośności.

0
David Maze 30 lipiec 2020, 11:25