繁体   English   中英

gitlab-runner - 将 docker 镜像部署到服务器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM