43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # syntax=docker/dockerfile:1
 | |
| #  ┬─┐┬ ┐o┬  ┬─┐
 | |
| #  │─││ │││  │ │
 | |
| #  ┘─┘┘─┘┘┘─┘┘─┘
 | |
| 
 | |
| FROM --platform=$BUILDPLATFORM techknowlogick/xgo:go-1.20.0 AS builder
 | |
| 
 | |
| RUN go install github.com/magefile/mage@latest && \
 | |
|     mv /go/bin/mage /usr/local/go/bin
 | |
| 
 | |
| WORKDIR /go/src/code.vikunja.io/api
 | |
| COPY . ./
 | |
| 
 | |
| ARG TARGETOS TARGETARCH TARGETVARIANT
 | |
| 
 | |
| RUN mage build:clean && \
 | |
|     mage release:xgo "${TARGETOS}/${TARGETARCH}/${TARGETVARIANT}"
 | |
| 
 | |
| #  ┬─┐┬ ┐┌┐┐┌┐┐┬─┐┬─┐
 | |
| #  │┬┘│ │││││││├─ │┬┘
 | |
| #  ┘└┘┘─┘┘└┘┘└┘┴─┘┘└┘
 | |
| 
 | |
| # The actual image
 | |
| # Note: I wanted to use the scratch image here, but unfortunatly the go-sqlite bindings require cgo and
 | |
| # because of this, the container would not start when I compiled the image without cgo.
 | |
| FROM alpine:3.16 AS runner
 | |
| LABEL maintainer="maintainers@vikunja.io"
 | |
| WORKDIR /app/vikunja
 | |
| ENTRYPOINT [ "/sbin/tini", "-g", "--", "/entrypoint.sh" ]
 | |
| EXPOSE 3456
 | |
| 
 | |
| ENV VIKUNJA_SERVICE_ROOTPATH=/app/vikunja/
 | |
| ENV PUID 1000
 | |
| ENV PGID 1000
 | |
| 
 | |
| RUN apk --update --no-cache add tzdata tini shadow && \
 | |
|     addgroup vikunja && \
 | |
|     adduser -s /bin/sh -D -G vikunja vikunja -h /app/vikunja -H
 | |
| COPY docker/entrypoint.sh /entrypoint.sh
 | |
| RUN chmod 0755 /entrypoint.sh && mkdir files
 | |
| 
 | |
| COPY --from=builder /build/vikunja-* vikunja
 | 
