#Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. #Copyright (C) 2024 HTWKalender support@htwkalender.de #This program is free software: you can redistribute it and/or modify #it under the terms of the GNU Affero General Public License as published by #the Free Software Foundation, either version 3 of the License, or #(at your option) any later version. #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU Affero General Public License for more details. #You should have received a copy of the GNU Affero General Public License #along with this program. If not, see . # build stage FROM golang:alpine AS build WORKDIR /app RUN apk add --no-cache --update go gcc g++ # Copy the source from the current directory to the Working Directory inside the container COPY go.mod go.sum ./ RUN go mod download COPY data-manager/. ./data-manager COPY common/. ./common RUN CGO_ENABLED=1 GOOS=linux go build -o /htwkalender-data-manager data-manager/main.go # production stage FROM alpine:latest AS prod WORKDIR /htwkalender-data-manager ARG USER=ical RUN adduser -Ds /bin/sh $USER && \ chown $USER:$USER ./ USER $USER RUN mkdir -p data # copies executable from build container COPY --chown=$USER:$USER --from=build /htwkalender-data-manager ./ # Expose port 8090 to the outside world EXPOSE 8090 ENTRYPOINT ["./main", "serve"] FROM golang:1.21.6 AS dev # Set the Current Working Directory inside the container WORKDIR /htwkalender-data-manager # Copy go mod and sum files COPY go.mod go.sum ./ RUN go mod download # Copy the source from the current directory to the Working Directory inside the container COPY data-manager/. ./data-manager COPY common/. ./common # Build the Go app RUN CGO_ENABLED=1 GOOS=linux go build -o /htwkalender-data-manager data-manager/main.go # Expose port 8091 to the outside world EXPOSE 8091 # Entry point ENTRYPOINT ["./main", "serve"]