mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-12 10:04:14 +02:00
6397d73535
Update Ubuntu 12.04 to 16.04. Version 16.04 is recently EOL but testing on an old version is beneficial. Update Ubuntu 18.04 to 20.04. Update Fedora 32 to 33. Version 34 would have been preferred but there were some build issues, i.e. the default shell did not work with configure, and after ksh was installed configure locked up. Add --no-install-recommends to apt-get commands to save a bit of time and space. Update test Dockerfile to run in multiple steps. This makes the container larger but also makes rebuilding after changes faster. The --squash option may be used to keep the container small. Remove obsolete casts in protocol/parallel module. These casts were included in the original migration because Ubuntu 12.04 32-bit gcc required them, but Ubuntu 16.04 32-bit gcc complains. There is no production issue here since at this point in the code the file descriptors are guaranteed to be >= 0.
37 lines
1.4 KiB
Docker
37 lines
1.4 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/docker/$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 valgrind lcov autoconf-archive zstd libzstd-dev bzip2 libbz2-dev pkg-config libyaml-dev
|
|
|
|
# Install Docker
|
|
RUN groupadd -g5000 docker
|
|
RUN curl -fsSL https://get.docker.com | sh
|
|
|
|
# Create docker user
|
|
RUN adduser --ingroup=docker -uid=5000 --disabled-password --gecos \"\" docker
|
|
|
|
# Configure sudo
|
|
RUN echo '%docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
|
|
|
# Mount tmpfs at /home/docker/test for faster testing
|
|
RUN sudo -u docker mkdir -m 770 /home/docker/test
|
|
RUN echo 'tmpfs /home/docker/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 docker
|
|
WORKDIR /home/docker
|
|
|
|
ENTRYPOINT sudo rm -f /var/run/docker.pid && sudo mount -a && sudo dockerd
|