如何使用GitLab CI/CD在AWS上部署Docker应用程序

4
我有一个运行在docker-compose中的Symfony应用程序,我想使用GitLab CI/CD实现自动部署,以在一些AWS实例上运行该应用程序。我不知道采取什么样的最佳方法,基本上这是我的想法及其步骤:
方法1: (在GitLab中构建)
- 在GitLab runners中构建docker镜像 - 将镜像推送到某个镜像注册表 - ssh连接到AWS实例 - 拉取新镜像 - 使用docker-compose运行新容器
方法2: (在AWS中构建)
- ssh连接到AWS - 拉取要部署的分支 - 构建docker镜像 - 使用docker-compose运行新容器
我喜欢第一种方法,但也许还有其他更好的方法。拥有一些.gitlab-ci.yml参考文件将是很棒的。
谢谢!
1个回答

2
如果您在GitLab Runner中构建它并将其推送到注册表中,则可以在更多地方使用它,而不仅仅是在AWS上。
这是一个Docker-in-Docker构建方法的参考文件(来自docs):
.gitlab-ci.yml
build:
   image: docker:stable
   services:
     - docker:dind
   variables:
     DOCKER_HOST: tcp://docker:2375
     DOCKER_DRIVER: overlay2
   stage: build
   script:
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.example.com
     - docker build -t registry.example.com/group/project/image:latest .
     - docker push registry.example.com/group/project/image:latest

1
这对于CI来说没问题,但是这里没有CD。 - Juliatzin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接