mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
b8fc20d5b8
Meson is a new build system that offers simpler syntax and superior performance to autoconf/make. In addition, Windows is supported natively. The Meson build appears complete, but currently is used only for auto-generation of code and the host build of pgbackrest. Some container upgrades will be required before Meson can be used for container builds. Also patch the Debian package to force autoconf/make rather than Meson.
46 lines
1.7 KiB
Docker
46 lines
1.7 KiB
Docker
# export PGB=pgbackrest;export PGB_IMAGE=$PGB/test:u20-main;PGB_REPO=~/Documents/Code/$PGB
|
|
# docker build --squash -f $PGB_REPO/test/Dockerfile -t $PGB_IMAGE .
|
|
# docker run --privileged -itd --name $PGB-test -h $PGB-test -v $PGB_REPO:/home/vagrant/$PGB $PGB_IMAGE
|
|
FROM ubuntu:focal
|
|
|
|
# Install packages
|
|
RUN apt-get update
|
|
RUN DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
|
sudo vim htop jq rsync sysstat curl \
|
|
libdbd-pg-perl libxml-checker-perl libyaml-perl \
|
|
devscripts build-essential lintian git cloc txt2man debhelper libssl-dev zlib1g-dev libperl-dev libxml2-dev liblz4-dev \
|
|
liblz4-tool libpq-dev lcov autoconf-archive zstd libzstd-dev bzip2 libbz2-dev pkg-config libyaml-dev libc6-dbg wget meson \
|
|
ccache
|
|
|
|
# Install Docker
|
|
RUN groupadd -g5000 docker
|
|
RUN curl -fsSL https://get.docker.com | sh
|
|
|
|
# Create vagrant user
|
|
RUN adduser --ingroup=docker -uid=5000 --disabled-password --gecos \"\" vagrant
|
|
|
|
# Build valgrind
|
|
RUN export VALGRIND=valgrind-3.17.0 && \
|
|
wget -q -O - https://sourceware.org/pub/valgrind/${VALGRIND?}.tar.bz2 | tar jx -C /root && \
|
|
cd /root/${VALGRIND?} && \
|
|
./configure --silent && \
|
|
make -s -j8 install && \
|
|
rm -rf /root/${VALGRIND?}
|
|
|
|
# Configure sudo
|
|
RUN echo '%docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
|
|
|
# Mount tmpfs at /home/vagrant/test for faster testing
|
|
RUN sudo -u vagrant mkdir -m 770 /home/vagrant/test
|
|
RUN echo 'tmpfs /home/vagrant/test tmpfs size=4096M 0 1' >> /etc/fstab
|
|
|
|
# Cleanup
|
|
RUN apt-get autoremove -y
|
|
RUN apt-get clean
|
|
RUN rm -rf /var/lib/apt/lists/*
|
|
|
|
USER vagrant
|
|
WORKDIR /home/vagrant
|
|
|
|
ENTRYPOINT sudo rm -f /var/run/docker.pid && sudo mount -a && sudo dockerd
|