gitlab ci / cd将docker部署到AWS ec2

时间:2019-09-06 22:28:19

标签: docker amazon-ec2 gitlab continuous-deployment

我们正在开发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。

1 个答案:

答案 0 :(得分:2)

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

  

我需要将pem文件添加到源代码以连接到ec2实例吗?

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

  

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

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

ECS专为运行Docker容器而设计,与ec2相比,ECS的一大优势是您无需担心容器管理,可伸缩性和可用性,ECS会照顾好它。提供类似于docker注册表的ECR,但它是私有的并具有网络内功能。

enter image description here

deploy-docker-containers