converge/Dockerfile
Erik Brakkee 3d5735a050 now upgraded to go 1.22.5 and mofified coker file to use newer alpine
version with GOTOOLCHAIN=auto setting to automatically download newer
versions.
Also added a .dockerignore file to speed up building images.
2024-09-08 11:16:49 +02:00

33 lines
1.3 KiB
Docker

FROM alpine:3.20.2 as builder
RUN apk update && apk add go curl
RUN mkdir -p /opt/converge/bin
# if templ cannot be obtained: quick fix, remove this statement and run make, then build the image.
RUN curl -L https://github.com/a-h/templ/releases/download/v0.2.747/templ_Linux_x86_64.tar.gz -o templ.tar.gz && \
tar xvzf templ.tar.gz templ && \
chmod 755 templ && \
mv templ /bin
COPY cmd pkg static go.mod go.sum /opt/converge/
WORKDIR /opt/converge
ENV GOTOOLCHAIN=auto
RUN go mod download
COPY . /opt/converge/
RUN templ generate
RUN go build -ldflags "-linkmode 'external' -extldflags '-static'" -o bin ./cmd/...
RUN GOOS=windows GOARCH=amd64 go build -o bin ./cmd/...
FROM scratch
COPY --from=builder /opt/converge/bin/converge /opt/converge/bin/
COPY --from=builder /opt/converge/bin/agent \
/opt/converge/bin/tcptows \
/opt/converge/bin/wsproxy \
/opt/converge/bin/agent.exe \
/opt/converge/bin/tcptows.exe \
/opt/converge/bin/wsproxy.exe \
/opt/converge/static/
COPY --from=builder /opt/converge/static/ /opt/converge/static/
ENTRYPOINT ["/opt/converge/bin/converge", "--static", "/opt/converge/static", "--downloads", "/opt/converge/static" ]