Files
DockerPostgresMigration/Dockerfile

35 lines
1.2 KiB
Docker

FROM ubuntu:noble AS build18
RUN apt update && apt upgrade -y && apt install -y wget curl tar build-essential libreadline-dev zlib1g-dev flex bison libicu-dev pkg-config
RUN wget https://ftp.postgresql.org/pub/source/v18.0/postgresql-18.0.tar.gz -O pg18.tar.gz
RUN tar -xf pg18.tar.gz
RUN cd postgresql* && ./configure --prefix=/postgres/18 && make world-bin && make install-world-bin
FROM ubuntu:noble AS build17
RUN apt update && apt upgrade -y && apt install -y wget curl tar build-essential libreadline-dev zlib1g-dev flex bison libicu-dev pkg-config
RUN wget https://ftp.postgresql.org/pub/source/v17.6/postgresql-17.6.tar.gz -O pg17.tar.gz
RUN tar -xf pg17.tar.gz
RUN cd postgresql* && ./configure --prefix=/postgres/17 && make world-bin && make install-world-bin
FROM ubuntu:noble
RUN apt update && apt install -y \
libicu74 \
libreadline8t64 \
curl \
wget \
nano \
locales \
&& rm -rf /var/lib/apt/lists/*
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG=en_US.utf8
ENV POSTGRES_USER=postgres
COPY --from=build18 /postgres/18 /postgres/18
COPY --from=build17 /postgres/17 /postgres/17
COPY migrate.sh /migrate.sh
RUN chmod +x migrate.sh
CMD ["/migrate.sh"]