首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自托管gitlab CI/CD推送注册表到ECS服务

自托管gitlab CI/CD推送注册表到ECS服务
EN

Stack Overflow用户
提问于 2019-01-05 07:53:05
回答 2查看 1.7K关注 0票数 2

我正在使用自托管的gitlab上的ubuntu16.04。我已经成功地创建了ECS和服务。现在,我想将我的微服务部署到aws ecs。我不知道如何把我的私人注册码头图像到ecs。我有gitlab-ci.yml文件:

代码语言:javascript
复制
image: docker:latest
services:
  - docker:dind
stages:
- build
- package
- deploy
variables:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
DOCKER_DRIVER: overlay
before_script:
#  - echo `pwd` # debug
#  - echo "$CI_BUILD_NAME, $CI_COMMIT_REF_NAME $CI_BUILD_STAGE" # debug
- export GRADLE_USER_HOME=`pwd`/.gradle
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- chmod +x gradlew

 cache:
 paths:
 - .gradle/wrapper
 - .gradle/caches

build:
 stage: build
 image: openjdk:8-jdk
tags:
 - tag
script:
 - ./gradlew assemble
artifacts:
 paths:
   - build/libs/*.jar
 expire_in: 1 week
 only:
- master

 docker-build:
 stage: package
tags:
- tag
script:
- docker build -t registry.gitlab.example.com/root/abc:latest .
- docker login registry.gitlab.example.com -u gitlab-ci-token -p xyz
- docker push registry.gitlab.example.com/root/abc:latest
deploy:
 tags:
  - tag
 script:

after_script:
 - echo "End CI"

gitlab.rb文件中的外部注册表url是:

代码语言:javascript
复制
registry.gitlab.example.com

但是如何在ecs部署中提供这一点呢?我有ubuntu机器的公共IP。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-05 23:35:16

您可能可以选择在ECS中使用ECR。要推送到AWS,您需要一个URL;看起来类似于: xxxxxxxxxxxx.dkr.ecr.your-region.amazonaws.com/url .Then,您可能可以在gitlab-ci.yml中执行如下操作:

代码语言:javascript
复制
variables:
  REPOSITORY_URL: your_url

build:
  stage: build
  script:
    - $(aws ecr get-login --no-include-email --region us-east-1)
    - docker build -t $REPOSITORY_URL .
    - docker push $REPOSITORY_URL
  tags:
    - docker

不要忘记在设置中使这些env变量(AWS_ACCESS_KEY_ID & AWS_SECRET_ACCESS_KEY)。您还可能希望在before-script中安装aws。

票数 2
EN

Stack Overflow用户

发布于 2020-08-23 16:59:33

还请检查GitLab 13.3 (2020年8月)对您的情况是否有帮助:

从本地JSON定义ECS任务 今天,GitLab的ECS部署模板更新了已经在附加的AWS帐户中定义的现有任务定义。更新任务定义作为GitLab流的一部分也很常见。 现在,您可以在本地存储库中更新JSON任务定义,并在AWS帐户中适当地创建任务,从而改进您的标准开发流程。 见文档问题

以这段视频为例

还有GitLab 13.6 (2020年11月)

创建作业以停止ECS评审应用程序 我们最近增加了对AWS的支持,这样您就可以将它用作自动DevOps的部署目标。 然而,ECS目标的审查应用程序并没有自动停止。 为了纠正这一点,Deploy_ECS模板已经被扩展到自动停止审查应用程序,作为自动DevOps流的一部分,这样就不会浪费资源。 这为部署到ECS的自动DevOps用户和使用Kubernetes的用户提供了类似的体验,在那里,无需手动停止和跟踪审查应用程序就可以自动工作。

文档问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54050060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档