docker-compose.yaml 文件中包含“入口点”或“命令”字段会导致 Azure 容器应用程序在创建容器时崩溃。
我有一个简单的 docker-compose.yaml 文件:
version: "3.9"
services:
busybox:
image: busybox
container_name: busybox
entrypoint: ["echo", "hello"]
在 docker 上运行它工作正常并回显“hello”。
但是当我尝试通过以下命令在 Azure 容器应用程序上运行相同的容器时:
az containerapp compose create --environment env --resource-group omd --compose-file-path docker-compose.yaml
容器崩溃: 失败的容器 没有控制台日志。
谢谢
我尝试使用 YAML 配置并得到相同的错误。
您需要修改 YAML 文件才能使用
sh
或配置它来构建,如下所示:
build:
context: ./src
dockerfile: ./TodoApi/Dockerfile
使用 Docker 镜像来构建特定的代码或组件。
也可以使用docker-busybox-example
存储库中的
代码作为参考来构建图像。
从此文档中,您可以使用
command: sh
而不是 entrypoint: ["echo", "hello"]
来运行 Azure 容器应用程序。
检查示例代码:
version: '3'
services:
busybox:
image: busybox
command: sh -c "echo 'Hello from BusyBox!' && sleep 3600"
stdin_open: true
tty: true
使用代码将 BusyBox 作为 HTTP Web 服务器运行:
您可以在 BusyBox 中运行一个简单的 HTTP 服务器来提供静态文件。
version: '3'
services:
web:
image: busybox
command: httpd -f -p 8080
volumes:
- ./web-content:/www
ports:
- "8080:8080"
欲了解更多详细信息,请参阅BusyBox。