stages:
- build
- docker-push
- deploy
cache:
paths:
- node_modules/
build:
stage: build
image: node:latest
script:
- yarn install
- npm run build
artifacts:
paths:
- dist/
docker:
stage: docker-push
image: docker:18.09.7
services:
- docker:18.09.7-dind
script:
- docker login --username=$DOCKER_USERNAME --password=$DOCKER_PASSWORD
- docker tag $DOCKER_REPOSITORY:$CI_RUNNER_ID $DOCKER_REPOSITORY:latest
- docker push $DOCKER_REPOSITORY
test:
stage: deploy
image: google/cloud-sdk:latest
script:
- echo $GCP_ACCESS_JSON > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account $GCP_CE_PROJECT_EMAIL --key-file /tmp/$CI_PIPELINE_ID.json --project $GCP_PROJECT_ID我有这个.gitlab-ci.yml文件。我已经成功地创建了docker镜像,并将其发布到docker hub私有存储库。我还创建了GCP compute enigne实例,正如您在gitlab-ci文件中看到的那样,我可以使用gcloud命令登录到此实例,现在我希望找到一些gcloud命令,它将提供将此私有docker集线器映像部署到此计算引擎实例的机会。我该怎么做呢?如果您需要更多信息,请让我知道!
发布于 2019-10-12 07:34:23
如果您没有绑定到docker hub,而是可以使用Google Container Registry,那么有一个simple gcloud command可以使用专门为容器设计的very slimmed down operating system来部署实例:
gcloud compute instances create-with-container [INSTANCE_NAME] \
--container-image [DOCKER_IMAGE]但是,除了GCR之外,它不支持私有docker集线器注册表。Here is a guide到推送GCR,如果这是你可以采取的路线。
否则,除了配置一个startup script或cloud-init文件之外,实际上并没有一个gcloud命令来做您想要做的事情,该文件具有进行身份验证和从私有存储库提取所需的数据,但它肯定不是自动化的。
发布于 2019-10-12 07:35:41
计算引擎VM实例本身不运行容器映像。
1)手动安装Docker并部署镜像。
2)使用容器操作系统部署计算引擎,手动部署您的镜像。
3)切换到Google Container Registry,使用运行Container OS的GCE VM实例部署镜像。
发布于 2019-10-12 08:05:42
gcloud创建实例确保docker可用(如果没有安装)手动部署容器流到gcloud
或gcloud实例连接dockerhub注册表,并拉取.yml文件部署它
https://stackoverflow.com/questions/58349465
复制相似问题