From 50f6d343f114c4c61ef7bc6118ce7f2ce5c5ee96 Mon Sep 17 00:00:00 2001 From: Bolke de Bruin <bolke@xs4all.nl> Date: Fri, 26 Aug 2022 09:46:59 +0200 Subject: [PATCH] Make docker image use sratch --- cmd/rdpgw/config/configuration.go | 6 ++++++ cmd/rdpgw/main.go | 2 +- dev/docker/Dockerfile | 27 +++++++++------------------ 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/cmd/rdpgw/config/configuration.go b/cmd/rdpgw/config/configuration.go index 1c8db65..865da21 100644 --- a/cmd/rdpgw/config/configuration.go +++ b/cmd/rdpgw/config/configuration.go @@ -193,6 +193,12 @@ func Load(configFile string) Configuration { if !Conf.Caps.TokenAuth && Conf.Server.Authentication == "openid" { log.Fatalf("openid is configured but tokenauth disabled") } + + // prepend '//' if required for URL parsing + if !strings.Contains(Conf.Server.GatewayAddress, "//") { + Conf.Server.GatewayAddress = "//" + Conf.Server.GatewayAddress + } + return Conf } diff --git a/cmd/rdpgw/main.go b/cmd/rdpgw/main.go index d4d9992..c6cdbf0 100644 --- a/cmd/rdpgw/main.go +++ b/cmd/rdpgw/main.go @@ -88,7 +88,7 @@ func main() { url.Scheme = "https" } url.Path = "callback" - api.GatewayAddress = url.Host + api.GatewayAddress = url.String() oauthConfig := oauth2.Config{ ClientID: conf.OpenId.ClientId, diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile index cfdba46..7497cb8 100644 --- a/dev/docker/Dockerfile +++ b/dev/docker/Dockerfile @@ -1,15 +1,7 @@ # builder stage FROM golang as builder -# define architectures which could be run rdpgw -RUN dpkgArch="$(dpkg --print-architecture)"; \ - case "$dpkgArch" in \ - arm) ARCH='arm' ;; \ - arm64) ARCH='arm64' ;; \ - amd64) ARCH='amd64' ;; \ - 386) ARCH='386' ;; \ - *) echo >&2 "error: unsupported architecture: $apkArch"; exit 1 ;; \ - esac +RUN apt-get update && apt-get install -y libpam-dev # certificate RUN mkdir -p /opt/rdpgw && cd /opt/rdpgw && \ @@ -28,23 +20,22 @@ RUN adduser --disabled-password --gecos "" --home /opt/rdpgw --uid 1001 rdpgw ARG CACHEBUST RUN git clone https://github.com/bolkedebruin/rdpgw.git /app && \ cd /app && \ - go mod tidy -compat=1.17 && \ + go mod tidy -compat=1.19 && \ CGO_ENABLED=0 GOOS=linux go build -trimpath -tags '' -ldflags '' -o '/opt/rdpgw/rdpgw' ./cmd/rdpgw && \ + CGO_ENABLED=1 GOOS=linux go build -trimpath -tags '' -ldflags '' -o '/opt/rdpgw/rdpgw-auth' ./cmd/auth && \ chmod +x /opt/rdpgw/rdpgw && \ + chmod +x /opt/rdpgw/rdpgw-auth && \ + chmod u+s /opt/rdpgw/rdpgw-auth && \ chown -R 1001 /opt/rdpgw -# FROM scratch -# FROM scratch is missing /bin/sh which is sadly needed to start the container. -FROM busybox -# Copy stuff from builder +FROM scratch + COPY --from=builder /opt/rdpgw /opt/rdpgw COPY --from=builder /etc/passwd /etc/passwd -# trust root CA COPY --from=builder /etc/ssl/certs /etc/ssl/certs -# COPY --from=builder /bin/sh /bin/sh -# COPY rdpgw.yaml + COPY rdpgw.yaml /opt/rdpgw/rdpgw.yaml USER 1001 WORKDIR /opt/rdpgw -ENTRYPOINT /opt/rdpgw/rdpgw +ENTRYPOINT ["/opt/rdpgw/rdpgw"] -- GitLab