Skip to content
Snippets Groups Projects
Commit dd4a62e6 authored by Maksim Nabokikh's avatar Maksim Nabokikh Committed by m.nabokikh
Browse files

Apply suggestions from code review

parent 7f744598
No related branches found
No related tags found
No related merge requests found
......@@ -25,7 +25,8 @@ FROM alpine:3.13.1 AS gomplate
ARG TARGETOS
ARG TARGETARCH
ARG TARGETVARIANT
ARG GOMPLATE_VERSION=v3.9.0
ENV GOMPLATE_VERSION=v3.9.0
RUN wget -O /usr/local/bin/gomplate \
"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 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
# Copy module files for CVE scanning / dependency analysis.
......@@ -63,7 +64,7 @@ COPY --from=builder /usr/local/src/dex/web /web
USER 1001:1001
COPY docker-entrypoint.sh /
COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["serve", "/etc/dex/config.docker.yaml"]
ENTRYPOINT ["/entrypoint.sh"]
CMD ["dex", "serve", "/etc/dex/config.docker.yaml"]
#!/bin/sh -e
### 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.
### Example: docker-entrypoint.sh serve config.yaml = dex serve /tmp/dex-config.yaml-ABCDEFG
### * If command is not in the list of known dex commands, it will be executed bypassing entrypoint.
### Example: docker-entrypoint.sh echo "Hello!" = echo "Hello!"
function main() {
executable=$1
command=$2
command=$1
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"
if [[ "$executable" != "dex" ]] && [[ "$executable" != "$(which dex)" ]]; then
exec $@
fi
args="${args} ${tmpfile}"
else
args="${args} ${file_candidate}"
fi
done
exec dex $args
;;
--help|-h|version)
exec dex $@
;;
*)
if [[ "$command" != "serve" ]]; then
exec $@
;;
esac
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 $@
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment