docker - gitlab ci/cd 将 docker 部署到 aws ec2

标签 docker amazon-ec2 gitlab continuous-deployment

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

现在我不知道如何完成部署阶段。大多数教程只解释了如何部署到谷歌云提供商。我使用以下步骤来部署 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

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

最佳答案

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

Do I need to add pem file into source to connect to ec2 instance?



是的,您应该提供 ssh 的 key 。

Or is there any easy way to deploy Docker in ec2 from gitlab ci/cd?



是的,有最简单的方法,但为此,您需要使用 ECS ,专为 Docker 容器设计,您可以通过 API 管理您的部署,而不是对 ec2 服务器进行 ssh。

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

enter image description here

deploy-docker-containers

关于docker - gitlab ci/cd 将 docker 部署到 aws ec2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829160/

相关文章:

docker - Gitlab CI + Docker Hub : requested access to the resource is denied

git - 将克隆的 git 添加到个人 Gitlab

postgresql - 鹡鸰断言错误 "Unmatched tags: expected img, got p"

django - Celery 在 AWS ECS 中不起作用

docker - Docker:无法将数据从Logstash容器发送到Kafka容器

amazon-web-services - 将 AMI 从一个区域复制到另一个区域,然后无法 ssh 到新实例

spring-boot - Docker 内存不足

mysql - 在实例之间切换 ebs 卷

ssh - gitlab 错误连接到主机 gitlab.com 端口 22 : Connection timed out

docker - AWS 本地构建 (CodeBuild) 使用 wsl2 传递凭证文件