我在 Bitbucket 管道中创建了一个 Docker 构建步骤。这个想法是拉取图像->构建容器->卷曲容器。完成此序列后,此步骤就完成了。
以下是此 Bitbucket 管道步骤的部分代码:
docker-test: &docker-test-step
name: docker-test
...
...
...
...
script:
- docker run -p 8080:8080 -e DVC_BEARER_TOKEN=$(gcloud auth print-access-token) -e MODEL_DIR="model_checkpoints/$MODEL_TYPE/$CUSTOMER/" $IMAGE
- echo "RUN SUCCESSFULLY"
- echo "curl http://localhost:8080/"
在我的 Bitbucket 管道中,我可以观察运行程序如何运行
docker run
命令。在 docker run 命令之后,我在 Bitbucket 管道中观察到此输出:
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
这意味着容器存在并且可以工作。但该步骤尚未在管道中完成(它不是绿色(即已完成))并且状态为“正在运行”。
我的问题是如何调整 bitbucket.yaml 文件来完成此 docker-test 步骤并进一步移动到
- echo "RUN SUCCESSFULLY"
、- echo "curl http://localhost:8080/"
步骤?
您需要使用
--detach
选项运行容器。请参阅https://docs.docker.com/engine/reference/commandline/run/#options
script:
- docker run --detach # ...
# ...
注意:这将立即继续,而无需等待容器准备好,因此您的立即卷曲探针无论如何都会失败。