[英]gitlab-runner - deploy docker image to a server
我可以使用 docker 图像设置一个 gitlab-runner,如下所示:-
stages:
- build
- test
- deploy
image: laravel/laravel:v1
build:
stage: build
script:
- npm install
- composer install
- cp .env.example .env
- php artisan key:generate
- php artisan storage:link
test:
stage: test
script: echo "Running tests"
deploy_staging:
stage: deploy
script:
- echo "What shall I do?"
environment:
name: staging
url: https://staging.example.com
only:
- master
它可以通过构建阶段和测试阶段,我相信一个 docker 镜像/容器已准备好部署。 从 Google 那里,我观察到它可能会使用“docker push”来进行下一步,例如推送到 AWS ECS 或 Gitlab 的某个地方。 其实我想明白,如果我可以将它直接推送到另一个远程服务器(例如通过 scp)?
docker 镜像是使用docker build
命令docker build
的不同层的组合。 它重用现有的图层并为图层组合命名,这就是您的图像名称。 它们通常存储在/var/lib/docker
某个地方。
一般来说,所有必要的数据都存储在您的系统上,是的。 但是不建议直接将这些层复制到不同的机器上,我不太确定这是否能正常工作。 Docker 建议您使用“ docker registry ”。 在远程服务器上安装自己的注册表非常简单,因为注册表也可以作为容器运行(请参阅文档)。
如果您有敏感数据,我建议您坚持使用 docker 团队提出的解决方案,并使用公共 DockerHub 注册表或自己的注册表。
您正在使用 GitLab。 GitLab 提供了自己的注册表。 您可以将您的图像推送到您自己的 Gitlab 注册表并从您的远程服务器中提取它。 您的远程服务器只需要根据您的注册表进行身份验证即可。 例如,GitLab 的 CI 可以在每次推送到主分支时直接构建和推送你的镜像到你自己的注册表。 您可以在文档中找到许多示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.