gitlab ci/cd 将docker部署到aws ec2

nan*_*984 7 amazon-ec2 continuous-deployment gitlab docker

我们正在开发 Spring Boot 应用程序,目前正在 AWS 中手动部署。为此,首先我们通过 Dockerfile 构建 docker 镜像,然后从笔记本电脑连接到 AWS EC2 实例,然后拉取镜像,然后使用 docker run 启动它。但我们希望使用 gitlab CI/CD 自动化该过程。我们创建了 .gitlab-ci.yml,构建阶段构建 spring-boot 应用程序并生成 jar 文件。打包阶段然后使用源代码中的 Dockerfile 构建 docker 映像,然后将映像推送到注册表。

现在我不知道如何完成部署阶段。大多数教程仅解释有关部署到 Google 云提供商的信息。我使用以下步骤来部署 docker 映像...

ssh -i "spring-boot.pem" ubuntu@ec2-IP_address.compute-2.amazonaws.com

sudo docker pull username/spring-boot:v1

sudo docker run -d -p 80:8080 username/spring-boot:v1
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我将上述步骤添加到部署阶段。我是否需要将 pem 文件添加到源中才能连接到 ec2 实例。或者有没有简单的方法可以从 gitlab ci/cd 在 ec2 中部署 docker。

Adi*_*iii 3

首先,如果有 ssh,则意味着您必须默认提供密钥或密码,除非您允许所有人访问。

我是否需要将 pem 文件添加到源中才能连接到 ec2 实例?

是的,您应该提供 ssh 的密钥。

或者有没有简单的方法可以从 gitlab ci/cd 在 ec2 中部署 Docker?

是的,有最简单的方法可以做到这一点,但为此,您需要使用专门为 Docker 容器设计的ECS,并且您可以通过 API 管理您的部署,而不是通过 ssh 连接到 ec2 服务器。

ECS 是为运行 Docker 容器而设计的,ECS 相对于 ec2 的一大优势是您无需担心容器管理、可扩展性和可用性,ECS 会处理这些问题。提供 ECR,它类似于 docker 注册表,但它是私有的并且在网络内。

在此输入图像描述

部署 docker 容器