#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 docker.io/golang:alpine AS build WORKDIR /htwkalender-ical 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 ical/. ./ical COPY common/. ./common RUN CGO_ENABLED=1 GOOS=linux go build -o /htwkalender-ical ical/main.go # production stage FROM docker.io/alpine:3.21 AS prod WORKDIR /htwkalender-ical ARG USER=ical RUN adduser -Ds /bin/sh "$USER" && \ mkdir -p data && \ chown -R "$USER":"$USER" ./ # copies executable from build container COPY --chown=$USER:$USER --chmod=744 --from=build /htwkalender-ical ./ USER $USER # Expose port 8091 to the outside world EXPOSE 8091 ENTRYPOINT ["./main"]