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:
		
				
					committed by
					
						
						m.nabokikh
					
				
			
			
				
	
			
			
			
						parent
						
							d43053e11c
						
					
				
				
					commit
					226c91df06
				
			
							
								
								
									
										22
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								Dockerfile
									
									
									
									
									
								
							@@ -7,16 +7,11 @@ RUN apk add --no-cache --update alpine-sdk
 | 
				
			|||||||
ARG TARGETOS
 | 
					ARG TARGETOS
 | 
				
			||||||
ARG TARGETARCH
 | 
					ARG TARGETARCH
 | 
				
			||||||
ARG TARGETVARIANT=""
 | 
					ARG TARGETVARIANT=""
 | 
				
			||||||
ARG GOMPLATE_VERSION=v3.9.0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV GOOS=${TARGETOS} GOARCH=${TARGETARCH} GOARM=${TARGETVARIANT}
 | 
					ENV GOOS=${TARGETOS} GOARCH=${TARGETARCH} GOARM=${TARGETVARIANT}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG GOPROXY
 | 
					ARG GOPROXY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN wget -O /usr/local/bin/gomplate \
 | 
					 | 
				
			||||||
  "https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_${GOOS:-linux}-${GOARCH:-amd64}${GOARM}" \
 | 
					 | 
				
			||||||
  && chmod +x /usr/local/bin/gomplate
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY go.mod go.sum ./
 | 
					COPY go.mod go.sum ./
 | 
				
			||||||
COPY api/v2/go.mod api/v2/go.sum ./api/v2/
 | 
					COPY api/v2/go.mod api/v2/go.sum ./api/v2/
 | 
				
			||||||
RUN go mod download
 | 
					RUN go mod download
 | 
				
			||||||
@@ -27,26 +22,31 @@ RUN make release-binary
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
FROM alpine:3.13.1
 | 
					FROM alpine:3.13.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG TARGETOS="linux"
 | 
				
			||||||
 | 
					ARG TARGETARCH="amd64"
 | 
				
			||||||
 | 
					ARG TARGETVARIANT=""
 | 
				
			||||||
 | 
					ARG GOMPLATE_VERSION=v3.9.0
 | 
				
			||||||
# Dex connectors, such as GitHub and Google logins require root certificates.
 | 
					# Dex connectors, such as GitHub and Google logins require root certificates.
 | 
				
			||||||
# Proper installations should manage those certificates, but it's a bad user
 | 
					# Proper installations should manage those certificates, but it's a bad user
 | 
				
			||||||
# experience when this doesn't work out of the box.
 | 
					# experience when this doesn't work out of the box.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# OpenSSL is required so wget can query HTTPS endpoints for health checking.
 | 
					# OpenSSL is required so wget can query HTTPS endpoints for health checking.
 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk add --no-cache --update ca-certificates openssl
 | 
					RUN apk add --no-cache --update ca-certificates openssl
 | 
				
			||||||
 | 
					RUN wget -O /usr/local/bin/gomplate \
 | 
				
			||||||
 | 
					  "https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_${TARGETOS}-${TARGETARCH}${TARGETVARIANT}" \
 | 
				
			||||||
 | 
					  && chmod +x /usr/local/bin/gomplate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN mkdir -p /var/dex
 | 
					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 examples/config-example.tmpl /etc/dex/config.tmpl
 | 
					COPY config.docker.yaml /etc/dex/config.docker.yaml
 | 
				
			||||||
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.
 | 
				
			||||||
COPY --from=builder /usr/local/src/dex/go.mod /usr/local/src/dex/go.sum /usr/local/src/dex/
 | 
					COPY --from=builder /usr/local/src/dex/go.mod /usr/local/src/dex/go.sum /usr/local/src/dex/
 | 
				
			||||||
COPY --from=builder /usr/local/src/dex/api/v2/go.mod /usr/local/src/dex/api/v2/go.sum /usr/local/src/dex/api/v2/
 | 
					COPY --from=builder /usr/local/src/dex/api/v2/go.mod /usr/local/src/dex/api/v2/go.sum /usr/local/src/dex/api/v2/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY --from=builder /usr/local/bin/gomplate /usr/local/bin/gomplate
 | 
					 | 
				
			||||||
COPY --from=builder /go/bin/dex /usr/local/bin/dex
 | 
					COPY --from=builder /go/bin/dex /usr/local/bin/dex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER 1001:1001
 | 
					USER 1001:1001
 | 
				
			||||||
@@ -57,7 +57,7 @@ COPY --from=builder /usr/local/src/dex/web /web
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
USER 1001:1001
 | 
					USER 1001:1001
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY entrypoint.sh /
 | 
					COPY docker-entrypoint.sh /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENTRYPOINT ["/entrypoint.sh"]
 | 
					ENTRYPOINT ["/docker-entrypoint.sh"]
 | 
				
			||||||
CMD ["serve", "/etc/dex/config.tmpl"]
 | 
					CMD ["serve", "/etc/dex/config.docker.yaml"]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,25 +3,17 @@ issuer: {{ getenv "DEX_ISSUER" "http://127.0.0.1:5556/dex" }}
 | 
				
			|||||||
storage:
 | 
					storage:
 | 
				
			||||||
  type: sqlite3
 | 
					  type: sqlite3
 | 
				
			||||||
  config:
 | 
					  config:
 | 
				
			||||||
    file: {{ getenv "DEX_STORAGE_SQLITE3_CONFIG_FILE" "/etc/dex/dex.db" }}
 | 
					    file: {{ getenv "DEX_STORAGE_SQLITE3_CONFIG_FILE" "/var/dex/dex.db" }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
web:
 | 
					web:
 | 
				
			||||||
{{- if getenv "DEX_WEB_HTTPS" "" }}
 | 
					{{- if getenv "DEX_WEB_HTTPS" "" }}
 | 
				
			||||||
  https: {{ .Env.DEX_WEB_HTTPS }}
 | 
					  https: {{ .Env.DEX_WEB_HTTPS }}
 | 
				
			||||||
  {{- if getenv "DEX_WEB_TLS_KEY" }}
 | 
					  tlsKey: {{ getenv "DEX_WEB_TLS_KEY" | required "$DEX_WEB_TLS_KEY in case of web.https is enabled" }}
 | 
				
			||||||
  tlsKey: {{ .Env.DEX_WEB_TLS_KEY }}
 | 
					  tlsCert: {{ getenv "DEX_WEB_TLS_CERT" | required "$DEX_WEB_TLS_CERT in case of web.https is enabled" }}
 | 
				
			||||||
  {{- else }}
 | 
					 | 
				
			||||||
{{- fail "$DEX_WEB_TLS_KEY is required" }}
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
  {{- if getenv "DEX_WEB_TLS_CERT" "" }}
 | 
					 | 
				
			||||||
  tlsCert: {{ .Env.DEX_WEB_TLS_CERT }}
 | 
					 | 
				
			||||||
  {{- else }}
 | 
					 | 
				
			||||||
{{- fail "$DEX_WEB_TLS_CERT is required" }}
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					{{- end }}
 | 
				
			||||||
  http: {{ getenv "DEX_WEB_HTTP" "0.0.0.0:5556" }}
 | 
					  http: {{ getenv "DEX_WEB_HTTP" "0.0.0.0:5556" }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{- if getenv "DEX_TELEMETRY_HTTP" "" }}
 | 
					{{- if getenv "DEX_TELEMETRY_HTTP" }}
 | 
				
			||||||
telemetry:
 | 
					telemetry:
 | 
				
			||||||
  http: {{ .Env.DEX_TELEMETRY_HTTP }}
 | 
					  http: {{ .Env.DEX_TELEMETRY_HTTP }}
 | 
				
			||||||
{{- end }}
 | 
					{{- end }}
 | 
				
			||||||
@@ -33,8 +25,8 @@ expiry:
 | 
				
			|||||||
  authRequests: {{ getenv "DEX_EXPIRY_AUTH_REQUESTS" "24h" }}
 | 
					  authRequests: {{ getenv "DEX_EXPIRY_AUTH_REQUESTS" "24h" }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
logger:
 | 
					logger:
 | 
				
			||||||
  level: {{ getenv "DEX_LOGGER_LEVEL" "info" }}
 | 
					  level: {{ getenv "DEX_LOG_LEVEL" "info" }}
 | 
				
			||||||
  format: {{ getenv "DEX_LOGGER_FORMAT" "text" }}
 | 
					  format: {{ getenv "DEX_LOG_FORMAT" "text" }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
oauth2:
 | 
					oauth2:
 | 
				
			||||||
  responseTypes: {{ getenv "DEX_OAUTH2_RESPONSE_TYPES" "[code]" }}
 | 
					  responseTypes: {{ getenv "DEX_OAUTH2_RESPONSE_TYPES" "[code]" }}
 | 
				
			||||||
@@ -47,7 +39,7 @@ oauth2:
 | 
				
			|||||||
enablePasswordDB: {{ getenv "DEX_ENABLE_PASSWORD_DB" "true" }}
 | 
					enablePasswordDB: {{ getenv "DEX_ENABLE_PASSWORD_DB" "true" }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
connectors:
 | 
					connectors:
 | 
				
			||||||
{{- if getenv "DEX_CONNECTORS_ENABLE_MOCK" "" }}
 | 
					{{- if getenv "DEX_CONNECTORS_ENABLE_MOCK" }}
 | 
				
			||||||
- type: mockCallback
 | 
					- type: mockCallback
 | 
				
			||||||
  id: mock
 | 
					  id: mock
 | 
				
			||||||
  name: Example
 | 
					  name: Example
 | 
				
			||||||
							
								
								
									
										27
									
								
								docker-entrypoint.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								docker-entrypoint.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#!/bin/sh -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Usage: /docker-entrypoint.sh <command> <args>
 | 
				
			||||||
 | 
					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"
 | 
				
			||||||
 | 
					        echo "config rendered successfully into the tmp file ${tmpfile}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        args="${args} ${tmpfile}"
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        args="${args} ${file_candidate}"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    exec dex $args
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  --help|-h|version)
 | 
				
			||||||
 | 
					    exec dex $@
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  *)
 | 
				
			||||||
 | 
					    exec $@
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
@@ -1,13 +0,0 @@
 | 
				
			|||||||
#!/bin/sh -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Usage: /entrypoint.sh <command> <args>
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
command=$1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ "$command" == "serve" ]; then
 | 
					 | 
				
			||||||
  file="$2"
 | 
					 | 
				
			||||||
  gomplate -f "$file" -o "/etc/dex/config.yaml";
 | 
					 | 
				
			||||||
  exec dex serve "/etc/dex/config.yaml"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  exec dex $@
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user