forked from mystiq/dex
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:
parent
7f744598f5
commit
dd4a62e645
2 changed files with 33 additions and 31 deletions
11
Dockerfile
11
Dockerfile
|
@ -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"]
|
||||||
|
|
|
@ -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 $@
|
||||||
|
|
Loading…
Reference in a new issue