一千萬個為什麽

搜索

如何將使用docker-compose創建的多個容器推送到註冊表



我正在使用Jenkins管道並運行shell命令來調出我的鏈接容器以進行測試。一旦測試完成,我想將容器推送到註冊表(我更喜歡AWS ERC,但此時我將采用任何有效的例子)。這樣做的正確方法是什麽?每個圖像應該轉到不同的存儲庫嗎?如何將compose文件創建的所有容器都推高?我一直試圖用泊塢窗,撰寫 push命令完成這項工作,但我似乎無法讓它正常工作或找到任何體面的例子。

Jenkinsfile

node('ec2-build-slave') {
    stage('Docker Build') {
        /* This builds the actual image; synonymous to
        * docker build on the command line */

        sh("docker network create aa_backend_network")
        sh("泊塢窗,撰寫 up -d --build")
        //docker.build("$IMAGE")
    }
    stage ('Docker Push'){
       ///* This pushes the previously built image to the Amazon
       //* ECS Container Registry */
        sh("eval \$(aws ecr get-login --region us-west-2 --no-include-email | sed 's|https://||')")
       //docker.withRegistry(ECR_URL, ECR_CRED) {
       //docker.image(IMAGE).push()
       //}


        sh("泊塢窗,撰寫 build")
        sh("泊塢窗,撰寫 push")
    }
}
catch (exc) {
    currentBuild.result = "FAILED"
    throw exc
}
finally {
   //Success or failure, always send notifications
    notifyBuild(currentBuild.result)
    sh("泊塢窗,撰寫 down -v")
    sh("docker network prune -f")
}
}
}

泊塢窗,撰寫

version: "2"
services:
  db_setup:
    networks:
      - default
    build: .
    depends_on:
      - db
    container_name: db_setup
    image: db_setup
    command: python asteri_analytics_db.py
    working_dir: /asteri_analytics_db/asteri_analytics_db
  db:
    networks:
      - default
      - outside
    image: mongo:3.6.3
    container_name: mongo_db
    restart: always
    environment:
      MONGO_DATA_DIR: /data/db
      MONGO_LOG_DIR: /dev/null
      MONGO_INITDB_ROOT_USERNAME: ###edited####
      MONGO_INITDB_ROOT_PASSWORD: ###edited####
    ports:
      - 27017:27017

networks:
  outside:
    external:
      name: aa_backend_network

轉載註明原文: 如何將使用docker-compose創建的多個容器推送到註冊表

一共有 1 個回答:

只需確保您構建的圖像在註冊表前綴等方面都具有正確的名稱。如果不是,則需要相應地重命名它們。

否則這個任務很簡單。要使用docker-compose文件推送您構建的所有圖像,只需使用 docker-compose push

確保您有權推送到註冊表(登錄等)