如何在AWS Elastic Beanstalk、Docker和Gitlab ci上部署Node应用程序。
我创建了一个简单的Node应用程序,并将其Docker化。
我想要做的是使用Gitlab ci部署我的应用程序。
目前为止,这就是我所拥有的。
image: docker:git
services:
- docker:dind
stages:
- build
- release
- release-prod
variables:
CI_REGISTRY: registry.gitlab.com
CONTAINER_TEST_IMAGE: registry.gitlab.com/testapp/routing:$CI_COMMIT_REF_NAME
CONTAINER_RELEASE_IMAGE: registry.gitlab.com/testapp/routing:latest
before_script:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
build:
stage: build
script:
- docker build -t $CONTAINER_TEST_IMAGE -f Dockerfile.prod .
- docker push $CONTAINER_TEST_IMAGE
release-image:
stage: release
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
only:
- master
release-prod:
stage: release-prod
script:
when: manual
我卡在发布生产阶段。我不确定如何将应用程序部署到AWS Beanstalk。
由于已经创建并存储了Docker镜像在GitLab注册表中,我希望的是指示AWS Beanstalk从GitLab注册表下载Docker镜像并启动应用程序。
我还有一个定义服务的 "Dockerrun.aws.json" 文件。