-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
72 lines (60 loc) · 3.32 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
#set up timezone
#https://sleepless-se.net/2018/07/31/docker-build-tzdata-ubuntu/
RUN DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y tzdata
# timezone setting
ENV TZ=Asia/Tokyo
RUN apt-get update && \
apt-get install -y --no-install-recommends wget sudo language-pack-ja fonts-ipafont fonts-ipaexfont libboost-dev git-lfs maven nkf postgresql git
RUN sudo apt install -y --no-install-recommends python python-psycopg2
COPY src/mbslave/ /mbslave
COPY src/mbslave.conf /mbslave
COPY src/mbdump-derived.tar.bz2 /mbslave
COPY src/mbdump.tar.bz2 /mbslave
RUN chmod -R +x mbslave
#postgresql
USER postgres
RUN /etc/init.d/postgresql start &&\
psql --command "CREATE USER musicbrainz WITH SUPERUSER PASSWORD 'pass';" &&\
createdb -l C -E UTF-8 -T template0 -O musicbrainz musicbrainz &&\
psql musicbrainz -c 'CREATE EXTENSION cube;' &&\
psql musicbrainz -c 'CREATE EXTENSION earthdistance;'
#Access setting
RUN sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /etc/postgresql/10/main/postgresql.conf &&\
sed -i "s/md5/trust/" /etc/postgresql/10/main/pg_hba.conf &&\
sed -i "s/peer/trust/" /etc/postgresql/10/main/pg_hba.conf &&\
sed -i "$ a host all all 0.0.0.0/0 trust" /etc/postgresql/10/main/pg_hba.conf
#Prepare empty schemas for the MusicBrainz database and create the table structure
#Data import
#Setup primary keys, indexes and views
#USER root
WORKDIR /mbslave/
RUN /etc/init.d/postgresql restart &&\
echo 'CREATE SCHEMA musicbrainz;' | ./mbslave-psql.py -S &&\
echo 'CREATE SCHEMA statistics;' | ./mbslave-psql.py -S &&\
echo 'CREATE SCHEMA cover_art_archive;' | ./mbslave-psql.py -S &&\
echo 'CREATE SCHEMA wikidocs;' | ./mbslave-psql.py -S &&\
echo 'CREATE SCHEMA documentation;' | ./mbslave-psql.py -S &&\
./mbslave-remap-schema.py <sql/CreateTables.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/statistics/CreateTables.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/caa/CreateTables.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/wikidocs/CreateTables.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/documentation/CreateTables.sql | ./mbslave-psql.py
RUN /etc/init.d/postgresql restart &&\
./mbslave-import.py mbdump.tar.bz2 mbdump-derived.tar.bz2 &&\
./mbslave-remap-schema.py <sql/CreatePrimaryKeys.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/statistics/CreatePrimaryKeys.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/caa/CreatePrimaryKeys.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/wikidocs/CreatePrimaryKeys.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/documentation/CreatePrimaryKeys.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/CreateIndexes.sql | grep -v musicbrainz_collate | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/CreateSlaveIndexes.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/statistics/CreateIndexes.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/caa/CreateIndexes.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/CreateViews.sql | ./mbslave-psql.py &&\
./mbslave-remap-schema.py <sql/CreateFunctions.sql | ./mbslave-psql.py &&\
/etc/init.d/postgresql stop
USER root
EXPOSE 5432