在我的项目中,我必须docker-in-docker使用 CLoudBuild 从 GitLab 上传 Google CloudRun。我遇到了一个奇怪的错误。我有一个本地版本.env ,我不想将其排除在 git 修订之外。所以我把它放入.gitignore文件中。
但在 CloudBuild 上传过程中,我创建了一个.env使用 GitLab 的 CI/CD 中设置的变量命名的文件。我用这个.gitlab-ci.yml。
image: docker:latest
stages:
- deploy
deploy:
stage: deploy
image: google/cloud-sdk
services:
- docker:dind
script:
- echo CLOUDSQL_PASSWORD=$CLOUDSQL_PASSWORD >> app/.env
- echo CLOUDSQL_USERNAME=$CLOUDSQL_USERNAME >> app/.env
- echo CLOUDSQL_HOST=$CLOUDSQL_HOST >> app/.env
- echo MONGODB_PASSWORD=$MONGODB_PASSWORD >> app/.env
- echo MONGODB_USERNAME=$MONGODB_USERNAME >> app/.env
...
Run Code Online (Sandbox Code Playgroud)
问题是该文件没有被 docker 复制到新容器,并且我无法在 Node.js 应用程序中访问它。看起来 docker 还合并了文件行.gitignore并排除了.envGitLab CI 刚刚创建的文件。
.dockerignore …
git continuous-integration gitlab docker google-cloud-platform