2018-09-20 11:12:45 +03:00
|
|
|
# Use the Sytest image that comes with a lot of the build dependencies
|
|
|
|
# pre-installed
|
2021-09-24 17:27:09 +03:00
|
|
|
FROM matrixdotorg/sytest:bionic
|
2018-09-20 11:12:45 +03:00
|
|
|
|
|
|
|
# The Sytest image doesn't come with python, so install that
|
2019-06-17 17:59:00 +03:00
|
|
|
RUN apt-get update && apt-get -qq install -y python3 python3-dev python3-pip
|
2018-09-20 11:12:45 +03:00
|
|
|
|
|
|
|
# We need tox to run the tests in run_pg_tests.sh
|
2019-06-17 17:59:00 +03:00
|
|
|
RUN python3 -m pip install tox
|
2018-09-20 11:12:45 +03:00
|
|
|
|
2021-09-24 17:27:09 +03:00
|
|
|
# Initialise the db
|
|
|
|
RUN su -c '/usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/data -E "UTF-8" --lc-collate="C.UTF-8" --lc-ctype="C.UTF-8" --username=postgres' postgres
|
|
|
|
|
|
|
|
# Add a user with our UID and GID so that files get created on the host owned
|
|
|
|
# by us, not root.
|
|
|
|
ARG UID
|
|
|
|
ARG GID
|
|
|
|
RUN groupadd --gid $GID user
|
|
|
|
RUN useradd --uid $UID --gid $GID --groups sudo --no-create-home user
|
|
|
|
|
|
|
|
# Ensure we can start postgres by sudo-ing as the postgres user.
|
|
|
|
RUN apt-get update && apt-get -qq install -y sudo
|
|
|
|
RUN echo "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
|
|
|
|
|
|
ADD run_pg_tests.sh /run_pg_tests.sh
|
|
|
|
# Use the "exec form" of ENTRYPOINT (https://docs.docker.com/engine/reference/builder/#entrypoint)
|
|
|
|
# so that we can `docker run` this container and pass arguments to pg_tests.sh
|
|
|
|
ENTRYPOINT ["/run_pg_tests.sh"]
|
|
|
|
|
|
|
|
USER user
|