我正处于构建自动化管道的早期阶段。仍处于探索阶段。现在,我正在努力为要运行应用程序的容器设置环境变量,并探索几种不同的方法。
我的想法是将我的环境变量设置为 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"
本质上,我会循环遍历一个数组,我会在代码的另一部分动态构建该数组。然后,在循环中设置它们。
这可以实现吗?如果可以,那么语法中我遗漏了什么,因为它是错误的。