Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 1 | # Build stage |
| 2 | FROM golang:latest as build |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 3 | |
| 4 | RUN apt-get update && \ |
| 5 | apt-get upgrade -y ca-certificates |
| 6 | |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 7 | WORKDIR /src |
| 8 | |
| 9 | COPY go.mod go.sum ./ |
| 10 | RUN go mod download |
| 11 | |
| 12 | COPY . /src |
| 13 | |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 14 | RUN CGO_ENABLED=0 go test . |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 15 | |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 16 | # Build static |
| 17 | RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ |
| 18 | go build -v \ |
| 19 | -ldflags "-extldflags '-static' -s -w" \ |
| 20 | --trimpath \ |
| 21 | -o /src/external-big . |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 22 | |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 23 | FROM gruebel/upx:latest as upx |
| 24 | |
| 25 | COPY --from=build /src/external-big /external-big |
| 26 | |
| 27 | # Compress the binary and copy it to final image |
| 28 | RUN upx --best --lzma -o /external /external-big |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 29 | |
| 30 | # Main stage |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 31 | FROM scratch AS final |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 32 | |
| 33 | WORKDIR / |
| 34 | |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 35 | EXPOSE 5722 |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 36 | |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 37 | COPY --from=build /etc/ssl/certs /etc/ssl/certs |
| 38 | COPY --from=build /src/templates /templates |
| 39 | COPY --from=build /src/i18n /i18n |
| 40 | COPY --from=upx /external /external |
| 41 | |
| 42 | ENTRYPOINT [ "/external" ] |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 43 | |
| 44 | LABEL maintainer="korap@ids-mannheim.de" |
| 45 | LABEL description="Docker Image for Kalamar-Plugin-ExternalResources, a frontend plugin to link texts to external resources" |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 46 | LABEL repository="https://github.com/KorAP/Kalamar-Plugin-ExternalResources" |
Akron | f09fc56 | 2023-01-11 08:47:21 +0100 | [diff] [blame] | 47 | |
Akron | 23711ef | 2024-03-15 11:26:28 +0100 | [diff] [blame^] | 48 | # docker build -f Dockerfile -t korap/kalamar-plugin-externalresources:latest . |
| 49 | # docker run --rm --network host -v ${PWD}/db/:/db/:z -v ${PWD}/.env:/.env korap/kalamar-plugin-externalresources:latest |