# A fork of Dockerfile that doesn't hard code GOARCH and that uses wait-for to wait 
# until the postgres server is up. Meant to be used in the docker-compose file for self hosting.

FROM golang:1.18 AS builder
COPY go.mod ./
COPY go.sum ./
RUN unset GOPATH; go mod download
COPY . ./
RUN unset GOPATH; go build -o /server -ldflags "-X main.ReleaseVersion=v0.`cat VERSION`" backend/server/server.go

FROM golang:1.18
RUN apt-get update && apt-get install -y netcat
# Downlaod wait-for from a specific commit hash. This ensures that the owner of wait-for isn't in our TCB (though Github still is)
RUN curl https://raw.githubusercontent.com/eficode/wait-for/59bec22851ba83e9cc735a67a7d961f8aae2cd85/wait-for > /wait-for
RUN chmod +x /wait-for 
COPY --from=builder /server /server
CMD ["/wait-for", "postgres:5432", "--", "/server"]
