upda/Dockerfile
Varakh 3f654a1229
All checks were successful
/ build (pull_request) Successful in 5m27s
feat(embedded_ui): fully integrate UI into GoLang binary
2024-10-25 08:27:58 +02:00

50 lines
1.3 KiB
Docker

#
# Build image
#
FROM alpine:3.20 AS builder
LABEL maintainer="Varakh <varakh@varakh.de>"
RUN apk --update upgrade && \
apk add go gcc make sqlite && \
apk add nodejs npm && \
# See https://stackoverflow.com/questions/34729748/installed-go-binary-not-found-in-path-on-alpine-linux-docker
mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 && \
rm -rf /var/cache/apk/*
WORKDIR /app
COPY . .
RUN rm -rf bin/ && \
CC=gcc make ci
#
# Actual image
#
FROM alpine:3.20
LABEL maintainer="Varakh <varakh@varakh.de>" \
description="upda" \
org.opencontainers.image.authors="Varakh" \
org.opencontainers.image.revision="${REVISION}" \
org.opencontainers.image.vendor="Varakh" \
org.opencontainers.image.title="upda" \
org.opencontainers.image.description="upda" \
org.opencontainers.image.base.name="alpine:3.20"
ENV USER=appuser \
GROUP=appuser \
UID=2033 \
GID=2033
RUN apk --update upgrade && \
apk add sqlite tzdata && \
rm -rf /var/cache/apk/* && \
addgroup -S ${GROUP} -g ${GID} && \
adduser -S ${USER} -G ${GROUP} -u ${UID}
COPY --from=builder /app/bin/upda-cli-linux-amd64 /usr/bin/upda-cli
COPY --from=builder /app/bin/upda-server-linux-amd64 /usr/bin/upda-server
USER ${USER}
ENV SERVER_PORT 8080
EXPOSE ${SERVER_PORT}
CMD ["/usr/bin/upda-server"]