我想从gitlab-ci.yml执行一个使用docker:stable映像的外部bash脚本(在本地计算机上)。我想执行位于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
答案 0 :(得分: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