diff --git a/Dockerfile b/Dockerfile index d966a7a..06bcc5d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,31 +4,36 @@ FROM golang:1.19-bullseye AS build WORKDIR /build -ADD . /build RUN git config --global --add safe.directory /build +COPY go.mod go.sum ./ RUN go mod download +COPY Makefile main.go ./ +COPY static/ static/ +COPY pkg/ pkg/ +COPY .git/ . RUN make build +# ------------------------------------------------------------------------------ +# Fetch signing key +# ------------------------------------------------------------------------------ +FROM debian:bullseye-slim AS keyring +ADD https://www.postgresql.org/media/keys/ACCC4CF8.asc keyring.asc +RUN apt-get update && \ + apt-get install -qq --no-install-recommends gpg +RUN gpg -o keyring.pgp --dearmor keyring.asc + # ------------------------------------------------------------------------------ # Release Stage # ------------------------------------------------------------------------------ FROM debian:bullseye-slim -RUN \ - apt-get update && \ - apt-get install -y ca-certificates openssl netcat curl gnupg lsb-release && \ - update-ca-certificates - -RUN \ - curl --silent https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add && \ - echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list && \ - apt-get update && apt-get install -y postgresql-client - -RUN \ - apt-get clean autoclean && \ - apt-get autoremove --yes && \ - rm -rf /var/lib/{apt,dpkg,cache,log}/ +ARG keyring=/usr/share/keyrings/postgresql-archive-keyring.pgp +COPY --from=keyring /keyring.pgp $keyring +RUN . /etc/os-release && \ + echo "deb [signed-by=${keyring}] http://apt.postgresql.org/pub/repos/apt/ ${VERSION_CODENAME}-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ + apt-get update && \ + apt-get install -qq --no-install-recommends ca-certificates openssl netcat curl postgresql-client COPY --from=build /build/pgweb /usr/bin/pgweb diff --git a/docker-compose.yml b/docker-compose.yml index 5d12eeb..d914e7e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,6 +22,7 @@ services: pgweb: container_name: pgweb image: sosedoff/pgweb:latest + build: . environment: PGWEB_DATABASE_URL: postgres://pgweb:pgweb@pgweb-postgres:5432/pgweb?sslmode=disable ports: