我唯一能找到的文档是Amazon注册表(ECR),而GitLab注册表则没有。
这是我的 .gitlab-ci.yml ,其中包括构建并推送到GitLab注册表的步骤:
image: docker:19
services:
- docker:dind
stages:
- build
- registry-update
.build-template: &buildTemplate
stage: build
script:
- docker build --build-arg VERSION=$BUILD_VERSION --target $BUILD_TARGET -t $BUILD_IMAGE:$BUILD_TARGET -f $BUILD_DOCKERFILE $BUILD_CONTEXT
after_script:
- mkdir -p build/$BUILD_IMAGE
- docker save $BUILD_IMAGE:$BUILD_TARGET -o build/$BUILD_IMAGE/$BUILD_TARGET.tar
artifacts:
name: $CI_JOB_NAME-${CI_COMMIT_SHORT_SHA}
expire_in: 1 day
paths:
- build/$BUILD_IMAGE
dependencies: []
build-php-fpm-test:
<<: *buildTemplate
variables:
BUILD_IMAGE: myproject-php-fpm
BUILD_TARGET: dev
BUILD_DOCKERFILE: docker/php/Dockerfile
BUILD_CONTEXT: .
before_script:
- source .env && export BUILD_VERSION=$PHP_TAG
.registry-update-template: ®istryUpdateTemplate
stage: registry-update
before_script:
- docker load -i build/$BUILD_IMAGE/$BUILD_TARGET.tar
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker tag $BUILD_IMAGE:$BUILD_TARGET $IMAGE_TAG
- docker push $IMAGE_TAG
registry-update-php-fpm-test:
<<: *registryUpdateTemplate
variables:
BUILD_IMAGE: myproject-php-fpm
BUILD_TARGET: dev
IMAGE_TAG: $CI_REGISTRY_IMAGE/$BUILD_IMAGE:$CI_COMMIT_REF_SLUG
dependencies:
- build-php-fpm-test
但是现在我需要部署到Amazon ECS。我检查了the documentation,但未提及如何为任务定义定义图像名称。我还发现了this issue,但没有提及如何使用相关功能。
定义从GitLab注册中心到Amazon ECS的部署步骤的正确方法是什么?
答案 0 :(得分:0)
结帐 ecs-deploy 工具:https://github.com/fabfuel/ecs-deploy 您可以使用任何注册表(码头,dockerhub等)部署任务,例如:
ecs deploy <ecs_cluster> <ecs_service> --image <container_name> <container_repo>:<container_tag>
如果要部署特定任务,还可以将参数--task <task_family>:<task_revision>
添加到ecs deploy
。
当然,应该在您的.gitlab-ci.yml