CSh*_*arp 8 gitlab docker docker-compose
我想在我自己的服务器上部署一个docker堆栈。我已经编写了一个.gitlab-ci.yml文件,当前在我的堆栈中构建图像并将它们推送到我的 gitlab 注册表:
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
Run Code Online (Sandbox Code Playgroud)
我正在努力寻找一种方法来docker deploy使用我编写的文件在我自己的服务器上运行命令docker-compose.yml,从而成功地从我的 gitlab 注册表中提取图像。我想我可以使用sshpass到ssh我的服务器,然后复制docker-compose.yml文件并docker deploy从那里运行,但我不确定允许我的服务器访问现在位于我的gitlab注册表中的图像的最佳方法是什么:
# 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)
Run Code Online (Sandbox Code Playgroud)
这是我的文件的一部分docker-compse:
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
Run Code Online (Sandbox Code Playgroud)
如何从 gitlab 注册表中提取镜像?这是通过 gitlab ci 在远程服务器上创建 docker 部署的首选方式吗?
小智 12
我最近也同样遇到了这个困难,最后我发现解决方案只是将图像的链接插入到私有注册表中,就像我使用 gitlab 的情况一样。
version: "3.2"
services:
octeditor:
image: registry.gitlab.com/project-or-group/project-name/image-name:tag
ports:
- "3000:3000"
networks:
- front-tier
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11221 次 |
| 最近记录: |