我想通过以下步骤自动化我的应用程序的构建过程:
build-system容器,以生成我的应用程序的最终执行程序。docker cp或在启动容器时附加卷将exe传输到主机。dist-system容器,它本质上是存储在Docker中的最终映像。docker commit,然后从主机将映像转到Docker。我的问题具体涉及到第3点和第6点,我需要知道bash脚本已经在容器中完成了执行。只有到那时,我才想在主机上启动对接命令。是否有一种方式可以通知对接者在容器中执行bash脚本?
发布于 2018-08-14 08:11:46
docker run是同步的,默认情况下,它将被阻塞,直到停靠容器退出。
例如,如果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将被创建。
https://stackoverflow.com/questions/51835638
复制相似问题