xis*_*10z 22 yaml djangoappengine docker dockerfile docker-compose
我正在尝试使用 dockerfile 将我的 django 应用程序部署到应用程序引擎,为此,在阅读了一些博客(例如这些)之后,我创建了一个 docker-compose.yml 文件,但是当我运行命令时docker compose up
,docker-compose -f docker-compose-deploy.yml run --rm gcloud sh -c "gcloud app deploy"
我收到了错误key cannot contain a space
。见下文:
例如:
$ docker compose up
key cannot contain a space
Run Code Online (Sandbox Code Playgroud)
$ cat docker-compose.yml
version: '3.7'
services:
app:
build:
context: .
ports: ['8000:8000']
volumes: ['./app:/app']
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个错误吗?我已尝试 yamllint 验证 yaml 文件是否存在任何空格/缩进类型的错误,并且它没有向我显示任何错误。
编辑:这是较长命令中文件的内容:
version: '3.7'
services:
gcloud:
image: google/cloud-sdk:338.0.0
volumes:
- gcp-creds:/creds
- .:/app
working_dir: /app
environment:
- CLOUDSDK_CONFIG=/creds
volumes:
gcp-creds:
Run Code Online (Sandbox Code Playgroud)
xis*_*10z 31
好的,这件事终于解决了!经过一番绞尽脑汁,我最终通过执行以下操作解决了这个问题:
从我的 Docker 桌面设置中取消选中使用“Docker Compose v2”的选项。这是 Docker Desktop 中的设置
关闭 docker 桌面应用程序并重新启动它。
如果您遇到问题,请尝试这些步骤。谢谢!
小智 30
只是在此处添加另一个替代答案,我确认在执行上述步骤时对我有用,但没有。我的情况略有不同,但当谷歌首先把我带到这里时,我想我应该留下一张便条。
这可能仅适用于您使用env_var
文件的情况(请注意 OP 不在最小示例中,因此说这是不同的)。变量中未转义的空格将导致此神秘的错误消息。
因此,给定一个如下所示的撰写文件:
version: '3.7'
services:
gcloud:
image: google/cloud-sdk:338.0.0
volumes:
- gcp-creds:/creds
- .:/app
working_dir: /app
env_file:
- some_env_file.env
Run Code Online (Sandbox Code Playgroud)
如果some_env_file.env
看起来像这样:
MY_VAR=some string with spaces
Run Code Online (Sandbox Code Playgroud)
然后我们得到密钥不能包含空格。
如果我们改为some_env_file.env
这样:
MY_VAR="some string with spaces"
Run Code Online (Sandbox Code Playgroud)
那么一切都很好。
谷歌首先把我带到这里,遗憾的是,当你的建议对我不起作用时,它就把我带到了这个 reddit 线程,在那里我发现了上述内容。
归档时间: |
|
查看次数: |
13174 次 |
最近记录: |