FROM golang:1.23 AS build WORKDIR /app COPY . . ADD https://packaged-cli.prisma.sh/prisma-cli-5.22.0-linux-x64.gz /prisma-cli-linux-x64.gz ENV PRISMA_CLI_DIR=/root/.cache/prisma/binaries/cli/5.22.0 RUN go mod download RUN go get github.com/steebchen/prisma-client-go RUN mkdir -p $PRISMA_CLI_DIR RUN mv /prisma-cli-linux-x64.gz $PRISMA_CLI_DIR/prisma-cli-linux-x64.gz RUN gunzip $PRISMA_CLI_DIR/prisma-cli-linux-x64.gz RUN chmod +x $PRISMA_CLI_DIR/prisma-cli-linux-x64 RUN bash scripts/db-push.sh RUN go build -o /main main.go RUN go build -o /create-user cli/create-user_gen.go FROM alpine ARG USER=default ENV HOME /home/$USER RUN apk add --update libc6-compat # add new user RUN adduser -D $USER RUN mkdir /home/$USER/files RUN chown -R $USER:$USER /home/$USER/files USER $USER WORKDIR $HOME COPY --from=build --chown=default:default /main ./main COPY --from=build --chown=default:default /create-user ./create-user COPY --from=build --chown=default:default /app/.env .env COPY --chown=default:default views/ ./views COPY --chown=default:default static/ ./static/ EXPOSE 8089 CMD ./main