我们正在开发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
有人可以帮助我将上述步骤添加到部署阶段吗?我是否需要将pem文件添加到源中以连接到ec2实例。 或者有什么简单的方法可以从gitlab ci / cd在ec2中部署docker。
答案 0 :(得分:2)
第一件事,如果有ssh,则意味着您必须默认提供密钥或密码,除非您允许所有人访问。
我需要将pem文件添加到源代码以连接到ec2实例吗?
是的,您应该提供ssh的密钥。
或者有什么简单的方法可以从gitlab ci / cd在ec2中部署Docker?
是的,有一种最简单的方法,但是为此,您需要使用专为Docker容器设计的ECS,并且可以通过API管理部署,而无需对ec2服务器执行ssh。
ECS专为运行Docker容器而设计,与ec2相比,ECS的一大优势是您无需担心容器管理,可伸缩性和可用性,ECS会照顾好它。提供类似于docker注册表的ECR,但它是私有的并具有网络内功能。