在 GitLab-ci Docker 构建中执行外部 bash 脚本

问题描述 投票:0回答:1

我想从 gitlab-ci.yml 执行外部(在本地计算机上)bash 脚本,该脚本使用 docker:stable 映像。我想执行位于 gitlab docker 映像外部的startup.sh。这是可能的还是有更好的选择?

gitlab-ci.yaml

image: docker:stable

#Build script

variables:
  CI_DEBUG_TRACE: "true"
  DOCKER_DRIVER: overlay

before_script:
  - docker --version

build:
  services:
  - docker:dind
  script:
    - docker build --no-cache -t <tag> .
    - docker login -u root -p <pass> <registry>
    - docker tag ...
    - docker push ...
    - echo "build completed"
  stage: build
  tags:
    - <tag>

deploy_staging:
  stage: deploy
  script:
    - ./sh startup.sh

bash 脚本

#!/bin/bash

docker login -u root -p <pass>
docker pull <image>
docker-compose up -d
docker gitlab gitlab-ci-runner docker-in-docker
1个回答
0
投票

我不确定这是否是适合您的用例的最佳实践,但是 与图像共享文件的简单方法是添加音量并通过编辑 config.toml 文件将此代码共享到图像。

将此行添加到 [runners.docker] 下的 config.toml

volumes = ["/cache",startup.sh 的路径:/root/scripts"]

然后在 your.gilatb.yml 中

    deploy_staging:
      stage: deploy
      script:
        - chmod +x /root/scripts/startup.sh     
        - ./sh /root/scripts/startup.sh
© www.soinside.com 2019 - 2024. All rights reserved.