diff --git a/Dockerfile b/Dockerfile index 506472efb..effad2e41 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,9 @@ ENV PLUGIN_HTTP_HOST=172.19.0.8:503 WORKDIR /go/src/app COPY --from=builder /go/src/app . EXPOSE 9999 -RUN chmod +x ThingsPanel-Go -RUN pwd -RUN ls -lrt -ENTRYPOINT [ "./ThingsPanel-Go" ] \ No newline at end of file +RUN apk --update add curl bash && 、 + mkdir /docker-entrypoint.d && \ + chmod +x ThingsPanel-Go docker-entrypoint.sh +// 增加预处理过程,方便后期调试,例如独立运行本镜像查看环境等 +ENTRYPOINT ["/go/src/app/docker-entrypoint.sh"] +CMD [ "./ThingsPanel-Go" ] diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 000000000..7ef04e3ca --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# vim:sw=4:ts=4:et + +set -e + +env + +if [[ "$1" =~ "ThingsPanel-Go" ]]; then + if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then + echo "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration" + + echo "$0: Looking for shell scripts in /docker-entrypoint.d/" + find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do + case "$f" in + *.sh) + if [ -x "$f" ]; then + echo "$0: Launching $f"; + "$f" + else + # warn on shell scripts without exec bit + echo "$0: Ignoring $f, not executable"; + fi + ;; + *) echo "$0: Ignoring $f";; + esac + done + + echo "$0: Configuration complete; ready for start up" + else + echo "$0: No files found in /docker-entrypoint.d/, skipping configuration" + fi +fi + +exec "$@"