无法弄清楚我在这个多阶段docker构建中出错的地方?

时间:2018-01-05 16:17:53

标签: docker dockerfile

所以我有Dockerfile

FROM rust:1.19.0
RUN set -x \
    && apt-get update \
    && apt-get install git
RUN git clone https://gitlab.localhost.com/iron-site.git \
    && cd ./iron-site \
    && cargo build --all \
    && cp ./target/debug/*-site /usr/local/bin \
    && cd .. \
    && rm -rf iron-site


From nginx
COPY --from=0 /usr/local/bin/*-site /usr/local/bin/
ENV DATABASE_INI_FILE /srv/test.ini
COPY nginx.conf /etc/nginx/nginx.conf
COPY test.ini /srv/
COPY start.sh /usr/local/bin/
RUN chmod 770 /usr/local/bin/start.sh
RUN echo ls -la /usr/local/bin/
CMD /usr/local/bin/start.sh

所以本质上第一个阶段构建一些生锈二进制文件,执行时会生成unix套接字。第二阶段只运行那些带有nginx实例的二进制文件,该实例将http请求代理到正确的unix套接字。当我构建一切工作时,不会产生任何错误。但是,当我运行sudo docker run site-image,其中site-image是图像的标记时,我什么也得不到。没有输出或错误,没有容器,所以我很困惑如何进一步调试问题和解决问题。

最后,我的操作系统是fedora 27,而docker版本是17.12.0-ce

start.sh脚本如下:

#!/bin/bash

rm -f /run/nginx.pid
nginx -t
site_names=( $(find /usr/local/bin -name '*-site' | cut -d '/' -f5) )
for site in ${site_names[@]}; do
  /usr/local/bin/$site -p /run/nginx/$site.sock -x 1024
done
nginx -g daemon off

0 个答案:

没有答案