Docker 컨테이너에 라벨 추가하기

디스코어 컨테이너에 라벨을 추가하는 방법에 대해 질문을 하려고 글을 쓰던 참에 방법을 알아냈습니다. 그래서 구글 검색 시 더 쉽게 찾을 수 있도록 여기에 공유해 보려 합니다.

워치타워(Watchtower)가 매번 컨테이너를 업데이트하려고 하지 않도록 디스코어 컨테이너에 라벨을 추가하고 싶었습니다.

launcher 스크립트가 출력하는 도움말을 그냥 지나쳤고, --docker-args 옵션을 알아채지 못했습니다.

원하는 라벨을 추가하려면 다음과 같이 시작해야 했습니다:

./launcher start app --docker-args "--label com.centurylinklabs.watchtower.enable=false"

하루 이상 구글 검색을 하고 여기저기 찾아보았지만 같은 일을 하려는 사람을 찾지 못했습니다. 그래서 이 글을 올렸고, 누군가에게 유용하길 바랍니다.

2개의 좋아요

프로세스를 보다 영구적인 성격으로 만들려면, 이 traefik 예제에 설명된 대로 docker 인수를 app.yml 파일에 추가할 수 있습니다.

1개의 좋아요

안녕하세요,

현재 Watchtower를 사용하여 Portainer의 Docker 컨테이너를 모니터링하고 업데이트하고 있습니다. 하지만 Discourse 컨테이너는 Watchtower에 의해 업데이트되지 않도록 제외하고 싶습니다.

저는 IT 전문가가 아니므로, Watchtower 모니터의 docker-compose.yml 파일에서 정확히 무엇을 변경해야 하는지, 그리고 Discourse 설정에서 다른 변경 사항이 필요한지에 대한 간단한 튜토리얼을 요청드립니다.

도움 주시면 감사하겠습니다.

app.yml에 labels: 스탠사를 추가하면, launcher에 의해 Discourse 컨테이너가 시작될 때 Docker 라벨을 포함할 수 있습니다. 또는 ./launcher start-command app을 사용하여 Docker 시작 명령어를 확인한 후, 동일한 ENV 변수를 사용하여 Discourse 컨테이너를 시작하는 방법을 자유롭게 선택할 수 있습니다.

Watchtower가 Discourse를 Watchtower에서 제외하기 위해 무엇을 원하거나 필요로 하는지 언급하지 않으셨으므로, 더 이상의 안내는 드릴 수 없습니다.

좀 더 생각해 보니, Discourse의 Docker 이미지에 latest 태그가 붙어 있지 않다는 것을 깨달았습니다. 제 생각이 맞다면, Watchtower는 Discourse Docker 이미지의 더 새로운 버전을 감지할 수 있어야 합니다.

제가 잘못 알고 있다면 정정해 주십시오.

정말 간단하게 설명하자면: app.yml 파일에 다음 내용을 추가했습니다.

# Docker에 추가할 인수가 있나요?
docker_args:
  - "--label com.centurylinklabs.watchtower.enable=false"

문서와 도움을 주셔서 감사합니다!

labels 스탠스를 사용하면 레이블이 실행 중인 컨테이너에만 적용되는 반면, docker-args 방식은 컨테이너가 부팅되는 동안에도 레이블이 포함됩니다(대부분 그렇다고 생각합니다).

복사해서 붙여넣기 위해 전체 연(節)은 어떻게 되어야 할까요?

그래서 그대로 두었습니다. Watchtower는 Discourse를 제외한 모든 컨테이너를 업데이트했습니다. 오류 메시지는 표시되었지만, 아무것도 깨지지 않았습니다.
@ikarus84 이 오류가 발생하지 않도록 올바르게 설정하는 방법을 알아내셨나요?