![使用 bash/shell 在 Docker 容器构建/运行命令上动态设置 GitHub Actions Secrets](https://linux22.com/image/792458/%E4%BD%BF%E7%94%A8%20bash%2Fshell%20%E5%9C%A8%20Docker%20%E5%AE%B9%E5%99%A8%E6%9E%84%E5%BB%BA%2F%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E4%B8%8A%E5%8A%A8%E6%80%81%E8%AE%BE%E7%BD%AE%20GitHub%20Actions%20Secrets.png)
我正处于构建自动化管道的早期阶段。仍处于探索阶段。现在,我正在努力为要运行应用程序的容器设置环境变量,并探索几种不同的方法。
我的想法是将我的环境变量设置为 GitHub Actions Secrets,并在运行 docker 容器命令时在容器中配置它们。该容器是由 Docker Composer 文件构建的。
我想到的一个方法是这样的:
- name: Backend - Build Container (proof of concept)
run: |
declare -a SECRET_KEYS=("GITHUB_USER" "GITHUB_REPO_NAME" "TEST_1" "TEST_2");
for key in "${SECRET_KEYS[@]}"; do
ENV_VARS+="$key=\"\${{ secrets.$key }}\" "
done
BACKEND_CONTAINER_SH_SCRIPT="$ENV_VARS docker-compose -f ss-build-files/ubuntu-container-build.yml up -d && docker-compose -f ss-build-files/ubuntu-container-build.yml logs; exit;";
ssh -v -t -t -i id_rsa_ssh_key_server_temp.pem -o StrictHostKeyChecking=no ubuntu@${{ env.CONFIG_SERVER_IP }} "$BACKEND_CONTAINER_SH_SCRIPT"
本质上,我会循环遍历一个数组,我会在代码的另一部分动态构建该数组。然后,在循环中设置它们。
这可以实现吗?如果可以,那么语法中我遗漏了什么,因为它是错误的。