如何使用GitLab CI / CD在AWS中部署Docker应用

时间:2019-01-16 13:02:40

标签: amazon-web-services docker continuous-integration gitlab gitlab-ci

我有一个与docker-compose一起运行的Symfony应用程序,我想用GitLab CI / CD实现自动部署,以便在某些AWS实例中运行该应用程序。我不知道什么是最好的方法,基本上这是我的想法及其步骤:

方法1 :(在GitLab中构建)

  • 在GitLab运行程序中构建docker映像
  • 将图像推送到某些图像注册表中
  • ssh到aws实例
  • 拉新图像
  • 使用docker-compose运行新容器

方法2 :(在AWS中构建)

  • ssh转换为aws
  • 拉分支进行部署
  • 构建docker映像
  • 使用docker-compose运行新容器

我喜欢第一种方法,但也许还有另一种更好的方法。拥有一些.gitlab-ci.yml参考文件会令人惊讶。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果在GitLab运行程序中构建它并将其推送到注册表,则可以在仅适用于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