도커 컴포지트로 기존 이미지를 업데이트하는 방법은?
저는 여러 개의 마이크로 서비스를 보유하고 있으며 개발 배포를 위해 도커 컴포지트를 사용하고 있습니다.마이크로 서비스 코드 베이스에 약간의 변경 사항이 있을 때, 나는 그것들을 다시 배치하기 위해 ci 작업을 시작하고 있습니다.이 작업을 하기 위해서 아래 대본이 있습니다.하지만 매번 처음부터 모든 이미지를 구축한 다음 실행해야 합니다.이 모든 수술이 끝난 후에, 저는anonymous
이미지들.그래서 마지막 스크립트를 사용해서 제거하고 있습니다.이 프로세스를 보다 실용적으로 만드는 방법은 무엇입니까?기존 이미지를 새로운 변경 사항으로 제거하지 않고 업데이트할 수 있는 방법은 없습니까?
- docker-compose build
- docker-compose down
- docker-compose up -d --force-recreate
- docker rmi $(docker images -f "dangling=true" -q) -f
추가정보 : 사용중gitlab-ci
도커 컨테이너는 덧없음으로 설계되었습니다.기존 컨테이너를 업데이트하려면 기존 컨테이너를 제거하고 새 컨테이너를 시작합니다.따라서 귀하가 따르고 있는 프로세스가 올바른 프로세스입니다.
명령을 다음 명령으로 간단히 만들 수 있습니다.
docker-compose up --force-recreate --build -d
docker image prune -f
다음을 사용하여 업데이트할 수 있습니다.
docker-compose pull
이제 이미지가 업데이트되었습니다.이전 버전의 컨테이너를 실행 중인 경우 업데이트된 이미지를 사용하려면 컨테이너를 다시 시작해야 합니다.
docker-compose up --detach
up
command는 이미지 또는 구성 변경 시 컨테이너를 자동으로 만듭니다.
새로운 이미지로 컨테이너를 업데이트하기 전에 모든 이미지가 다운로드되는지 확인하여 이미지 다운로드에 실패할 경우 중간 상태의 시간을 최소화하거나 더 심한 경우를 대비합니다.
최신 이미지를 꺼냅니다.
docker-compose pull
그런 다음 용기를 다시 시작합니다.
docker-compose up -d --remove-orphans
선택적으로 사용되지 않는 이미지를 제거합니다.
docker image prune
docker-compose pull
그리고나서
docker-compose up -d
"down" 명령이 필요 없습니다. "composeer-dock up-d" 명령은 변경된 명령만
도커 컴포지트 버전 3을 사용하면 사용자의 논리에 따라 이미지에 태그를 추가하고 해당 태그를 정리할 수 있습니다.
build: ./dir
image: yourapp:tag
익명의 이미지를 피해서 치우는 데 도움이 될 수도 있습니다.
위와 같은 답변을 들었지만, 여전히 모든 것이 정확한지 확인하기 위해 다음 명령을 사용해야 합니다.
docker-compose pull
docker-compose down
docker-compose up -d
한 번에 많은 도커 구성 스택을 업데이트할 수 있는 스크립트도 있습니다.
composite-update라고 하며 다음 링크에서 확인할 수 있습니다.
https://github.com/FrederikRogalski/compose-update
도커-compose-이미지-upd이터 구성-업데이트
이 파이썬 스크립트는 하나 이상의 도커 합성 스택의 이미지를 자동으로 업데이트합니다.
여러 개의 도커 합성 디렉토리가 제공되는 경우 스크립트는 병렬로 디렉토리를 업데이트합니다.
데모
사용.
Usage: compose-update [OPTIONS] [UPDATE_DIRS]...
Update docker-compose images automatically.
Takes one or more directorys as input and searches for a
compose file in one of the following forms:
"compose.yaml", "compose.yml", "docker-compose.yaml",
"docker-compose.yml"
Options:
--prune / --no-prune Prune docker images after update
process if set
--help Show this message and exit.
설치
git clone https://github.com/FrederikRogalski/compose-update.git
cd compose-updater
chmod +x update-compose
그런 다음 경로에 'update-compose' 파일을 추가합니다.
언급URL : https://stackoverflow.com/questions/49316462/how-to-update-existing-images-with-docker-compose
'prosource' 카테고리의 다른 글
AngularJS 컨트롤러 함수가 호출되지 않음 (0) | 2023.11.04 |
---|---|
MySQL - 관련성별 주문 방법? INNODB 표 (0) | 2023.11.04 |
VBA 없는 셀의 내용을 복사하는 방법선택한다. (0) | 2023.11.04 |
ADO에 대한 엔티티 프레임워크 제공자를 찾을 수 없습니다.불변 이름이 'Oracle'인 NET 공급자입니다.관리되는 데이터 액세스.고객' (0) | 2023.11.04 |
두 항아리 사이의 스프링 부트 및 @ComponentScan (0) | 2023.11.04 |