[英]How to automate docker to run script within container and notify completion to host?
我想通过以下步骤来自动化应用程序的构建过程:
build-system
容器,以使应用程序最终运行。 docker cp
或在启动容器时附加卷将exe传输到主机。 dist-system
容器,该容器本质上是将存储在Docker Hub中的最终映像。 docker commit
,然后docker push
从主机将映像docker push
送到Docker Hub。 我的问题特别涉及第3点和第6点,在这里我需要知道bash脚本已在容器内完成执行。 只有这样,我才想在主机中触发docker命令。 有没有一种方法可以通知Docker在容器内执行bash脚本的情况?
docker run
是同步的,默认情况下将一直阻塞直到docker容器退出。
例如,如果build-system
Dockerfile如下所示:
FROM alpine:latest
COPY ./build.sh /build.sh
VOLUME /data
CMD ["/build.sh", "/data/test.out"]
使用build.sh
如下:
#!/bin/sh
sleep 5
echo "Hello world!" >> "$1"
exit 0 # docker run will exit with this code, you can use this to check if your build was successful
运行docker run --rm -v /your/work/directory/build-output:/data build-system
将等待5秒钟然后退出,并且/your/work/directory/build-output/test.out
将会创建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.