首页 > 解决方案 > Dockerfile - 在 AWS 上安装 jenkins

问题描述

AWS 的新手,因此我们将不胜感激。

我正在尝试通过 AWS 上的 Docker 运行 Jenkins。我发现这篇文章https://docs.aws.amazon.com/aws-technical-content/latest/jenkins-on-aws/containerized-deployment.html

谁能分享一个更好的分步教程来实现这一目标?上面的页面似乎不完整。

它谈到“Doc​​kerfile 还应该包含安装 Jenkins Amazon ECS 插件的步骤”,但没有显示如何使用 Dockerfile 安装插件。

谢谢

标签: amazon-web-servicesdockerjenkins

解决方案


请按照以下步骤操作:

  1. 根据您的需要启动 EC2 集群。
  2. 在本地机器上安装 docker。例如,对于 ubuntu ( sudo apt-get isntall docker.io)
  3. systemctl start docker
  4. 为我们的 jenkins docker 创建新文件夹。使用以下内容在其中创建新的 Dockerfile。 FROM Jenkins COPY plugins.txt /usr/share/jenkins/plugins.txt RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
  5. 在同一文件夹中创建 plugins.txt 并添加以下行 amazon-ecs:1.3
  6. 使用 aws cli 登录到 ECR。首先使用您的凭据配置 aws。 aws ecr get-login --region <REGION> 将上述命令返回的输出运行到 docker login。
  7. sudo docker build -t jenkins_master .
  8. sudo docker tag jenkins_master:latest <AWS ACC ID>.dkr.ecr.<REGION>.amazonaws.com/jenkins_master:latest
  9. 在 ECR 中为此映像创建存储库 aws ecr create-repository --repository-name jenkins_master
  10. 在 AWS ECR 中推送图像。 sudo docker push <AWS ACC ID>.dkr.ecr.<REGION>+.amazonaws.com/jenkins_master:latest
  11. 我们的 Jenkins docker 镜像已经准备好了。但是这个 Jenkins 服务器存储的数据不会是持久的。为了永久存储数据,我们将创建另一个 docker 映像,该映像将创建一个带有挂载点的卷。为此,为这个新的 docker 镜像创建新目录,并在其中创建另一个具有以下内容的 Dockerfile。 FROM Jenkins VOLUME ["/var/jenkins_home"]
  12. 再次按照相同的命令将这个新存储库推送到 ECR。 sudo docker build -t jenkins_dv . sudo docker tag jenkins_dv:latest <AWS ACC ID>.dkr.ecr.<REGION>.amazonaws.com/jenkins_dv:latest aws ecr create-repository --repository-name jenkins_dv sudo docker push <AWS Account Number>.dkr.ecr.<REGION>.amazonaws.com/jenkins_dv:latest
  13. 现在我们的图像已经准备好了。我们将使用这些镜像在我们的 ECS 集群上将它们作为服务运行。为此,我们需要使用以下命令为 linux 安装 ecs-cli。 sudo curl -o /usr/local/bin/ecs-cli https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-latest
  14. 使用以下内容创建一个新的 txt 文件,该文件将具有 jenkins 配置。
jenkins_master:
 image: jenkins_master
 cpu_shares: 100
 mem_limit: 2000M
 ports:
     - "8080:8080"
     - "50000:50000"
 volumes_from:
     - jenkins_dv
jenkins_dv:
 image: jenkins_dv
 cpu_shares: 100
 mem_limit: 500M


15. 最后使用上述文件将此服务推送到您新创建的集群。 ecs-cli compose --file docker_compose.txt service up --cluster <cluster_name>

希望这可以帮助!


推荐阅读