Apply suggestions from code review

Co-authored-by: Márk Sági-Kazár <sagikazarmark@users.noreply.github.com>
Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
This commit is contained in:
Maksim Nabokikh 2021-02-04 19:43:00 +04:00 committed by m.nabokikh
parent 7f744598f5
commit dd4a62e645
2 changed files with 33 additions and 31 deletions

View File

@ -25,7 +25,8 @@ FROM alpine:3.13.1 AS gomplate
ARG TARGETOS ARG TARGETOS
ARG TARGETARCH ARG TARGETARCH
ARG TARGETVARIANT ARG TARGETVARIANT
ARG GOMPLATE_VERSION=v3.9.0
ENV GOMPLATE_VERSION=v3.9.0
RUN wget -O /usr/local/bin/gomplate \ RUN wget -O /usr/local/bin/gomplate \
"https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_${TARGETOS:-linux}-${TARGETARCH:-amd64}${TARGETVARIANT}" \ "https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_${TARGETOS:-linux}-${TARGETARCH:-amd64}${TARGETVARIANT}" \
@ -45,7 +46,7 @@ RUN mkdir -p /var/dex
RUN chown -R 1001:1001 /var/dex RUN chown -R 1001:1001 /var/dex
RUN mkdir -p /etc/dex RUN mkdir -p /etc/dex
COPY config.docker.yaml /etc/dex/config.docker.yaml COPY config.docker.yaml /etc/dex/
RUN chown -R 1001:1001 /etc/dex RUN chown -R 1001:1001 /etc/dex
# Copy module files for CVE scanning / dependency analysis. # Copy module files for CVE scanning / dependency analysis.
@ -63,7 +64,7 @@ COPY --from=builder /usr/local/src/dex/web /web
USER 1001:1001 USER 1001:1001
COPY docker-entrypoint.sh / COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"]
CMD ["serve", "/etc/dex/config.docker.yaml"] CMD ["dex", "serve", "/etc/dex/config.docker.yaml"]

View File

@ -1,31 +1,32 @@
#!/bin/sh -e #!/bin/sh -e
### Usage: /docker-entrypoint.sh <command> <args> ### Usage: /docker-entrypoint.sh <command> <args>
### * If command equals to "serve", config file for serving will be preprocessed using gomplate and saved to tmp dir. function main() {
### Example: docker-entrypoint.sh serve config.yaml = dex serve /tmp/dex-config.yaml-ABCDEFG executable=$1
### * If command is not in the list of known dex commands, it will be executed bypassing entrypoint. command=$2
### Example: docker-entrypoint.sh echo "Hello!" = echo "Hello!"
command=$1 if [[ "$executable" != "dex" ]] && [[ "$executable" != "$(which dex)" ]]; then
case "$command" in
serve)
for file_candidate in $@ ; do
if test -f "$file_candidate"; then
tmpfile=$(mktemp /tmp/dex.config.yaml-XXXXXX)
gomplate -f "$file_candidate" -o "$tmpfile"
args="${args} ${tmpfile}"
else
args="${args} ${file_candidate}"
fi
done
exec dex $args
;;
--help|-h|version)
exec dex $@
;;
*)
exec $@ exec $@
;; fi
esac
if [[ "$command" != "serve" ]]; then
exec $@
fi
for tpl_candidate in $@ ; do
case "$tpl_candidate" in
*.tpl|*.tmpl|*.yaml)
tmp_file=$(mktemp /tmp/dex.config.yaml-XXXXXX)
gomplate -f "$tpl_candidate" -o "$tmp_file"
args="${args} ${tmp_file}"
;;
*)
args="${args} ${tpl_candidate}"
;;
esac
done
exec $args
}
main $@