123456789101112131415161718192021222324252627282930 |
- # Use the Sytest image that comes with a lot of the build dependencies
- # pre-installed
- FROM matrixdotorg/sytest:bionic
- # The Sytest image doesn't come with python, so install that
- RUN apt-get update && apt-get -qq install -y python3 python3-dev python3-pip
- # We need tox to run the tests in run_pg_tests.sh
- RUN python3 -m pip install tox
- # 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
|