배포 할 때 새로 빌드 된 Docker 이미지를 시작하는 방법은 무엇입니까?

Agilulf

간단한 react.js 애플리케이션을 배포하기 위해 gitlab-ci.yml 파이프 라인을 만들었습니다. EC2 (AWS)에 gitlab-runner를 설치하고 파이프 라인 내부에서 이미지를 빌드하고 레지스트리로 푸시했습니다.

이것은 내 gitlab-ci.yml 파일입니다.

image: docker:latest
services:
  - docker:dind

stages:
  - test
  - deploy

 test-build: 
   stage: test
   only:
     - master
   tags:
     - master
   script:
     - sudo docker build .

deploy-production:
  stage: deploy
  only:
    - master
  tags:
    - master
  before_script:
    # remove the offending package golang-docker-credential-helpers without removing all of docker-compose
    - sudo dpkg -r --ignore-depends=golang-docker-credential-helpers golang-docker-credential-helpers
    - sudo docker version
    - "sudo docker info"
    - "sudo docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY"
  script:
    - "sudo docker build -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest --pull ."
    - "sudo docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest"
    - "sudo docker run -it -d -p 80:80 --rm --name daruma.comunicato ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest"
  after_script:
    - "sudo docker logout ${CI_REGISTRY}"
  when: manual

문제는 최신 푸시 이미지를 어떻게 실행합니까? docker run -it ...파이프 라인을 실행 하면 다음과 같이 실패합니다.

docker : 데몬의 오류 응답 : 충돌. 컨테이너 이름 '/app.test'는 'f8e888d6dff6fe5808d7577fe8fddc3e24cd8cc0e248a69d36e7ce51bf339ae6'컨테이너에서 이미 사용 중입니다. 해당 이름을 재사용하려면 해당 컨테이너를 제거 (또는 이름 변경)해야합니다.

해당 컨테이너가 이미 실행 중이고 이름이 같기 때문입니다. 다른 도커 컨테이너를 실행할 수 있기 때문에 배포 할 때 모든 컨테이너를 중지하고 싶지 않습니다. 나도 그렇게 생각 docker stop app.test && docker rm app.test했지만 어떤 이유로 컨테이너가 다운되면 오류가 발생하고 배포되지 않습니다.

이 상황을 처리하는 올바른 방법은 무엇입니까?

ΦXocę 웃 Пepeúpa 도구

오류 메시지는 이미 해당 이름을 가진 컨테이너가 있고도 커가 동일한 이름을 가진 여러 컨테이너를 가질 수 없음을 의미하며,이를 수정하고 이전 컨테이너를 제거하고 터미널에서 다음과 같이 $docker ps -a하면 목록이 표시됩니다. 보유한 모든 컨테이너의 이름을 지정한 다음 해당 이름으로 컨테이너의 ID를 식별하고 다음을 수행하여 제거하십시오.

$docker rm -f <container-id>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Emscripten으로 빌드 할 때 라이브러리 헤더를 포함하는 방법은 무엇입니까?

분류에서Dev

Kubernetes 배포로 배포하기 위해 Jenkins에서 빌드 번호로 Docker 이미지의 버전을 지정하는 방법은 무엇입니까?

분류에서Dev

사용자가 버튼을 클릭 할 때 업로드 된 이미지를 표시하는 방법은 무엇입니까?

분류에서Dev

새 빌드를 시작할 때 젠킨스가 작업 공간을 지우는 것을 중지하는 방법은 무엇입니까?

분류에서Dev

새 페이지를로드 할 때 WebView에서로드 된 자바 스크립트 콘텐츠를 보존하는 방법은 무엇입니까?

분류에서Dev

NextJS에서 SVG가 포함 된 외부 npm 패키지를 참조 할 때 빌드하는 방법은 무엇입니까?

분류에서Dev

AWS에서 ECR에 배포 할 때 새 버전의 이미지에 태그를 지정하는 방법은 무엇입니까?

분류에서Dev

matplotlib로 배경 이미지를 추가 할 때 측면 변경을 피하는 방법은 무엇입니까?

분류에서Dev

프로젝트를 빌드 할 때 라이브러리를 관리하는 방법은 무엇입니까?

분류에서Dev

플레이! Scala : 테스트 할 때 애플리케이션 시작시로드 된 액터 모듈을 비활성화하는 방법은 무엇입니까?

분류에서Dev

React의 배열에서 미리로드 된 이미지를 매핑하는 방법은 무엇입니까?

분류에서Dev

실시간 서버에서 WAR을 재배포 할 때 업로드 된 파일이 디렉토리에서 삭제되는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

Docker 레지스트리로 푸시 될 때 tekton을 사용하여 k8s 클러스터에 새 이미지를 자동으로 배포하는 방법은 무엇입니까?

분류에서Dev

singlehtml 빌드 옵션을 사용할 때 목차를 포함하는 방법은 무엇입니까?

분류에서Dev

Apache로 프로비저닝 된 Centos의 Docker 이미지를 만드는 방법은 무엇입니까?

분류에서Dev

Redis를 다단계 Docker 이미지 빌드로 실행하는 방법은 무엇입니까?

분류에서Dev

서비스가 컴포넌트에 주입 된 후 Angular 앱을로드 할 때 발생하는 문제를 해결하는 방법은 무엇입니까?

분류에서Dev

minSdkVersion이 21로 포함 된 앱을 설치할 때 "parse error"를 잡는 방법은 무엇입니까?

분류에서Dev

Terraform 및 Kubernetes로 배포 할 때 Docker 컨테이너에서 파일을 수정하는 방법은 무엇입니까?

분류에서Dev

콘텐츠를 다시로드 할 때 react-quill이 목록 앞에 새 줄을 삽입하는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

ASP.NET 5 프로젝트를 빌드 할 때 경고를 억제하는 방법은 무엇입니까?

분류에서Dev

정상적으로 빌드 할 때 Docker 빌드 킷 플래그를 무시하는 방법

분류에서Dev

AKS (Azure Kubernetes Service)에 포드로 배포 된 Asp.net Core Docker 컨테이너에서 Azure KeyVault에 액세스하는 방법은 무엇입니까?

분류에서Dev

사용자가 페이지를 다시로드 할 때 이미지 / 로고를 업데이트하는 방법은 무엇입니까?

분류에서Dev

webView가 페이지를로드 할 때 활동 표시기를 중지하는 방법은 무엇입니까?

분류에서Dev

GCP 둘러보기 가이드를 작성할 때 Cloud Shell에서 이미지 경로를 지정하는 방법은 무엇입니까?

분류에서Dev

장면으로 이동할 때 장면의 배율 모드를 설정하는 방법은 무엇입니까?

분류에서Dev

배포 슬롯을 사용하여 Azure Functions를 배포 할 때 호스팅 다시 시작을 방지하는 방법은 무엇입니까?

분류에서Dev

새로 포맷 된 하드 드라이브에 Windows를 설치하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Emscripten으로 빌드 할 때 라이브러리 헤더를 포함하는 방법은 무엇입니까?

  2. 2

    Kubernetes 배포로 배포하기 위해 Jenkins에서 빌드 번호로 Docker 이미지의 버전을 지정하는 방법은 무엇입니까?

  3. 3

    사용자가 버튼을 클릭 할 때 업로드 된 이미지를 표시하는 방법은 무엇입니까?

  4. 4

    새 빌드를 시작할 때 젠킨스가 작업 공간을 지우는 것을 중지하는 방법은 무엇입니까?

  5. 5

    새 페이지를로드 할 때 WebView에서로드 된 자바 스크립트 콘텐츠를 보존하는 방법은 무엇입니까?

  6. 6

    NextJS에서 SVG가 포함 된 외부 npm 패키지를 참조 할 때 빌드하는 방법은 무엇입니까?

  7. 7

    AWS에서 ECR에 배포 할 때 새 버전의 이미지에 태그를 지정하는 방법은 무엇입니까?

  8. 8

    matplotlib로 배경 이미지를 추가 할 때 측면 변경을 피하는 방법은 무엇입니까?

  9. 9

    프로젝트를 빌드 할 때 라이브러리를 관리하는 방법은 무엇입니까?

  10. 10

    플레이! Scala : 테스트 할 때 애플리케이션 시작시로드 된 액터 모듈을 비활성화하는 방법은 무엇입니까?

  11. 11

    React의 배열에서 미리로드 된 이미지를 매핑하는 방법은 무엇입니까?

  12. 12

    실시간 서버에서 WAR을 재배포 할 때 업로드 된 파일이 디렉토리에서 삭제되는 것을 방지하는 방법은 무엇입니까?

  13. 13

    Docker 레지스트리로 푸시 될 때 tekton을 사용하여 k8s 클러스터에 새 이미지를 자동으로 배포하는 방법은 무엇입니까?

  14. 14

    singlehtml 빌드 옵션을 사용할 때 목차를 포함하는 방법은 무엇입니까?

  15. 15

    Apache로 프로비저닝 된 Centos의 Docker 이미지를 만드는 방법은 무엇입니까?

  16. 16

    Redis를 다단계 Docker 이미지 빌드로 실행하는 방법은 무엇입니까?

  17. 17

    서비스가 컴포넌트에 주입 된 후 Angular 앱을로드 할 때 발생하는 문제를 해결하는 방법은 무엇입니까?

  18. 18

    minSdkVersion이 21로 포함 된 앱을 설치할 때 "parse error"를 잡는 방법은 무엇입니까?

  19. 19

    Terraform 및 Kubernetes로 배포 할 때 Docker 컨테이너에서 파일을 수정하는 방법은 무엇입니까?

  20. 20

    콘텐츠를 다시로드 할 때 react-quill이 목록 앞에 새 줄을 삽입하는 것을 방지하는 방법은 무엇입니까?

  21. 21

    ASP.NET 5 프로젝트를 빌드 할 때 경고를 억제하는 방법은 무엇입니까?

  22. 22

    정상적으로 빌드 할 때 Docker 빌드 킷 플래그를 무시하는 방법

  23. 23

    AKS (Azure Kubernetes Service)에 포드로 배포 된 Asp.net Core Docker 컨테이너에서 Azure KeyVault에 액세스하는 방법은 무엇입니까?

  24. 24

    사용자가 페이지를 다시로드 할 때 이미지 / 로고를 업데이트하는 방법은 무엇입니까?

  25. 25

    webView가 페이지를로드 할 때 활동 표시기를 중지하는 방법은 무엇입니까?

  26. 26

    GCP 둘러보기 가이드를 작성할 때 Cloud Shell에서 이미지 경로를 지정하는 방법은 무엇입니까?

  27. 27

    장면으로 이동할 때 장면의 배율 모드를 설정하는 방법은 무엇입니까?

  28. 28

    배포 슬롯을 사용하여 Azure Functions를 배포 할 때 호스팅 다시 시작을 방지하는 방법은 무엇입니까?

  29. 29

    새로 포맷 된 하드 드라이브에 Windows를 설치하는 방법은 무엇입니까?

뜨겁다태그

보관