首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Docker Compose文件中的Gitlab注册表拉取镜像

从Docker Compose文件中的Gitlab注册表拉取镜像
EN

Stack Overflow用户
提问于 2019-06-14 19:14:57
回答 1查看 3.3K关注 0票数 3

我想在我自己的服务器上部署一个docker堆栈。我已经编写了一个.gitlab-ci.yml文件,它当前在我的堆栈中构建图像,并将它们推送到我的gitlab注册表中:

代码语言:javascript
复制
build:
  stage: build
  image: docker:stable
  services: 
    - docker:dind
  before_script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker info
  script:
    - docker build -t $DOCKER_IMAGE1_TAG -f dir1/Dockerfile ./dir1
    - docker push $DOCKER_IMAGE1_TAG
    - docker build -t $DOCKER_IMAGE2_TAG -f dir2/Dockerfile ./dir2
    - docker push $DOCKER_IMAGE2_TAG  

我正在努力寻找一种在我自己的服务器上使用我编写的docker-compose.yml文件运行docker deploy命令的方法,它可以成功地从我的gitlab注册表中拉出图像。我想我可以使用sshpass ssh到我的服务器,然后复制docker-compose.yml文件并从那里运行docker deploy,但我不确定允许我的服务器访问现在位于我的gitlab注册表中的映像的最佳方法是什么:

代码语言:javascript
复制
# Need to ssh into the server, transfer over docker-stack file and run docker swarm deploy
deploy:
  stage: deploy
  environment:
    name: production
  image: trion/ng-cli-karma
  before_script:
    - apt-get update -qq && apt-get install -y -qq sshpass
    - eval $(ssh-agent -s)

这是我的docker-compse文件的一部分:

代码语言:javascript
复制
version: "3.2"
services:
  octeditor:
    image: image # how to set this to the image in my container registry?
    ports:
      - "3000:3000"
    networks:
      - front-tier
    deploy:
      replicas: 1
      update_config:
        parallelism: 1
      failure_action: rollback
      placement:
        constraints:
          - 'node.role == manager'
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
        window: 120s

如何从gitlab注册表中拉取镜像?这是通过gitlab ci在远程服务器上创建docker部署的首选方式吗?

EN

回答 1

Stack Overflow用户

发布于 2021-05-01 10:27:40

我最近也遇到了同样的困难,最后我发现解决方案就是在私有注册表中插入指向图像的链接,就像我在gitlab中的情况一样。

代码语言:javascript
复制
version: "3.2"
services:
  octeditor:
    image: registry.gitlab.com/project-or-group/project-name/image-name:tag
    ports:
      - "3000:3000"
    networks:
      - front-tier
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56597051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档