Skip to content

Instantly share code, notes, and snippets.

@yvanzo
Created July 31, 2020 11:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yvanzo/b40bc988cc22bfa07a822ff843a6be93 to your computer and use it in GitHub Desktop.
Save yvanzo/b40bc988cc22bfa07a822ff843a6be93 to your computer and use it in GitHub Desktop.
musicbrainz-server@35c4c5624d/docker/Dockerfile.test-database
FROM postgres:12
ARG DEBIAN_FRONTEND=noninteractive
# install_extensions.sh removes certain build dependencies that we need, so we
# can't install everything here.
# Note: curl is also a dependency of carton.
RUN apt-get update && ( \
apt-get install --no-install-suggests --no-install-recommends -y ca-certificates curl sudo || ( \
apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys && \
apt-get install --no-install-suggests --no-install-recommends -y ca-certificates curl sudo ) ) && \
rm -rf /var/lib/apt/lists/*
RUN cd /tmp && \
curl -O https://raw.githubusercontent.com/metabrainz/docker-postgres/0daa45e/postgres-master/install_extensions.sh && \
chmod +x install_extensions.sh && \
./install_extensions.sh && \
rm install_extensions.sh
RUN useradd --create-home --shell /bin/bash musicbrainz
WORKDIR /home/musicbrainz/musicbrainz-server
RUN mkdir -p /home/musicbrainz/musicbrainz-server && \
chown -R musicbrainz:musicbrainz /home/musicbrainz/musicbrainz-server
COPY --chown=musicbrainz:musicbrainz docker/musicbrainz-test-database/cpanfile docker/musicbrainz-test-database/cpanfile.snapshot ./
ENV PERL_CPANM_OPT --notest --no-interactive
RUN apt-get update && ( \
apt-get install --no-install-suggests --no-install-recommends -y gcc libc6-dev make postgresql-server-dev-12 carton postgresql-12-pgtap || ( \
apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys && \
apt-get install --no-install-suggests --no-install-recommends -y gcc libc6-dev make postgresql-server-dev-12 carton postgresql-12-pgtap ) ) && \
rm -rf /var/lib/apt/lists/* && \
sudo -E -H -u musicbrainz carton install --deployment && \
apt-get purge --auto-remove -y gcc libc6-dev make postgresql-server-dev-12
COPY --chown=musicbrainz:musicbrainz admin/ admin/
COPY --chown=musicbrainz:musicbrainz lib/ lib/
COPY --chown=musicbrainz:musicbrainz script/ script/
COPY --chown=musicbrainz:musicbrainz t/sql/initial.sql t/sql/
COPY --chown=musicbrainz:musicbrainz entities.json entities.json
RUN mkdir -p '/home/musicbrainz/dumps' && \
chown -R postgres:postgres /home/musicbrainz/dumps
COPY --chown=musicbrainz:musicbrainz docker/musicbrainz-test-database/DBDefs.pm lib/
COPY --chown=musicbrainz:musicbrainz docker/scripts/import_db.sh docker/scripts/
COPY \
docker/musicbrainz-test-database/create_test_db.sh \
/docker-entrypoint-initdb.d/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment