chore: import upstream snapshot with attribution
This commit is contained in:
+64
@@ -0,0 +1,64 @@
|
||||
# syntax=docker/dockerfile:1.3-labs
|
||||
|
||||
FROM debian:trixie-slim AS base
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update -y && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
curl tini ca-certificates postgresql-client && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# We use bookworm since the icu dependency ver. between the base and golang images is the same
|
||||
FROM golang:1.25-trixie AS build-from-source
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ARG DOLTGRES_VERSION="latest"
|
||||
|
||||
RUN mkdir -p /tmp/doltgresql/
|
||||
COPY . /tmp/doltgresql/
|
||||
WORKDIR /tmp/doltgresql/
|
||||
|
||||
RUN if [ "$DOLTGRES_VERSION" = "source" ]; then \
|
||||
go mod download; \
|
||||
./postgres/parser/build.sh; \
|
||||
./scripts/build_binaries.sh "linux-amd64"; \
|
||||
mv out/doltgresql-*/bin/doltgres /usr/local/bin; \
|
||||
fi
|
||||
|
||||
FROM base AS download-binary
|
||||
ARG DOLTGRES_VERSION="latest"
|
||||
|
||||
RUN if [ "$DOLTGRES_VERSION" = "latest" ]; then \
|
||||
version=$(curl -s "https://api.github.com/repos/dolthub/doltgresql/releases/latest" \
|
||||
| grep '"tag_name"' \
|
||||
| cut -d'"' -f4 \
|
||||
| sed 's/^v//'); \
|
||||
|
||||
echo "fetching https://github.com/dolthub/doltgresql/releases/download/v${version}/install.sh"; \
|
||||
curl -L "https://github.com/dolthub/doltgresql/releases/download/v${version}/install.sh" | bash; \
|
||||
fi
|
||||
|
||||
RUN if [ "$DOLTGRES_VERSION" != "latest" ] && [ "$DOLTGRES_VERSION" != "source" ]; then \
|
||||
echo "fetching https://github.com/dolthub/doltgresql/releases/download/v${DOLTGRES_VERSION}/install.sh"; \
|
||||
curl -L "https://github.com/dolthub/doltgresql/releases/download/v${DOLTGRES_VERSION}/install.sh" | bash; \
|
||||
fi
|
||||
|
||||
FROM base AS runtime
|
||||
|
||||
# Only one binary is possible due to DOLTGRES_VERSION, so we optionally copy from either stage
|
||||
COPY --from=download-binary /usr/local/bin/doltgres* /usr/local/bin/
|
||||
COPY --from=build-from-source /usr/local/bin/doltgres* /usr/local/bin/
|
||||
|
||||
RUN /usr/local/bin/doltgres --version
|
||||
|
||||
RUN mkdir /docker-entrypoint-initdb.d && \
|
||||
mkdir -p /var/lib/doltgres && \
|
||||
chmod 755 /var/lib/doltgres
|
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
VOLUME /var/lib/doltgres
|
||||
|
||||
EXPOSE 5432
|
||||
WORKDIR /var/lib/doltgres
|
||||
ENTRYPOINT ["tini", "-v", "--", "docker-entrypoint.sh"]
|
||||
Reference in New Issue
Block a user