Mercurial > dive4elements > river
annotate docker/Dockerfile.artifacts @ 9802:a9641367812c 3.2.x
Improve locale support in artifacts container
Makes it easier to run scripts e.g. for importing data.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 29 May 2024 10:51:00 +0200 |
parents | c670bf2ec4b0 |
children |
rev | line source |
---|---|
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
1 # Docker file for D4E River artifact server |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
2 |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
3 FROM centos:7 |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
4 MAINTAINER tom@intevation.de |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
5 |
9715
278d285a16bf
Ensure needed packages are installed
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
6 # Necessary to run further yum-installs inside Docker container, |
278d285a16bf
Ensure needed packages are installed
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
7 # if not already part of the base image: |
9732
a6c6bba0fc4b
Run yum commands silently
Tom Gottfried <tom@intevation.de>
parents:
9731
diff
changeset
|
8 RUN yum -q -y install yum-plugin-ovl && rpm --rebuilddb |
9715
278d285a16bf
Ensure needed packages are installed
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
9 |
9802
a9641367812c
Improve locale support in artifacts container
Tom Gottfried <tom@intevation.de>
parents:
9782
diff
changeset
|
10 # Re-install to gain locale support |
a9641367812c
Improve locale support in artifacts container
Tom Gottfried <tom@intevation.de>
parents:
9782
diff
changeset
|
11 RUN yum -q -y reinstall glibc-common |
a9641367812c
Improve locale support in artifacts container
Tom Gottfried <tom@intevation.de>
parents:
9782
diff
changeset
|
12 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
13 # Install prerequisites |
9732
a6c6bba0fc4b
Run yum commands silently
Tom Gottfried <tom@intevation.de>
parents:
9731
diff
changeset
|
14 RUN yum -q -y install maven mercurial curl |
9716
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
15 |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
16 # Add DEMs from demo dataset |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
17 ENV DEM_DIR /opt/d4e-river/dgm |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
18 ENV DATA_ARCH demodaten_3.1.10-bis-3.2.x.tar.gz |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
19 RUN mkdir -p $DEM_DIR |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
20 RUN curl -s "https://wald.intevation.org/frs/download.php/2282/$DATA_ARCH" | \ |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
21 tar -C $DEM_DIR --strip-components=1 --wildcards -xz 'demodaten/dem*.grd' |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
22 |
9764
b5d4cb088737
Add named volume for DEM data
Tom Gottfried <tom@intevation.de>
parents:
9737
diff
changeset
|
23 # Volume for DEM data |
b5d4cb088737
Add named volume for DEM data
Tom Gottfried <tom@intevation.de>
parents:
9737
diff
changeset
|
24 VOLUME $DEM_DIR |
b5d4cb088737
Add named volume for DEM data
Tom Gottfried <tom@intevation.de>
parents:
9737
diff
changeset
|
25 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
26 |
9731
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
27 WORKDIR /opt/d4e/src |
9776 | 28 ENV REPO_URL https://hg.wald.intevation.org/dive4elements/ |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
29 ENV BRANCH 3.2.x |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
30 RUN hg clone -b $BRANCH $REPO_URL/framework |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
31 RUN hg clone -b $BRANCH $REPO_URL/http-client |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
32 |
9733
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
33 RUN mvn -q -DskipTests -f framework/pom.xml install |
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
34 RUN mvn -q -DskipTests -f http-client/pom.xml install |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
35 |
9779
3847836c60b5
Improve backend build for different database backends
Tom Gottfried <tom@intevation.de>
parents:
9777
diff
changeset
|
36 # If ORACLE=true, the oracle profile in the POM is activated |
3847836c60b5
Improve backend build for different database backends
Tom Gottfried <tom@intevation.de>
parents:
9777
diff
changeset
|
37 ARG ORACLE |
9782
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
38 ADD ./backend river/backend |
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
39 ADD checkstyle.xml river/ |
9733
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
40 RUN mvn -q -DskipTests -f river/backend/pom.xml install |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
41 |
9782
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
42 # Download dependencies before adding sources to leverage build cache |
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
43 ADD artifacts/pom.xml river/artifacts/ |
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
44 RUN mvn -q -f river/artifacts/pom.xml dependency:go-offline |
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
45 ADD ./artifacts river/artifacts |
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
46 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
47 WORKDIR river/artifacts |
9716
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
48 |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
49 # Install WSPLGEN |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
50 ENV WSPLGEN_URL https://wald.intevation.org/frs/download.php/1496/wsplgen-linux-64bit-static.gz |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
51 RUN curl -s $WSPLGEN_URL | gunzip > bin/wsplgen && chmod +x bin/wsplgen |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
52 |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
53 # Create h2 databases |
9777
f98e5c7775d2
Do not rely on scripts being executable
Tom Gottfried <tom@intevation.de>
parents:
9776
diff
changeset
|
54 RUN sh ../../framework/artifact-database/bin/createArtifacts.sh |
f98e5c7775d2
Do not rely on scripts being executable
Tom Gottfried <tom@intevation.de>
parents:
9776
diff
changeset
|
55 RUN sh ./bin/createDatacage.sh |
9731
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
56 |
9733
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
57 RUN mvn -q -DskipTests package assembly:single |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
58 |
9731
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
59 WORKDIR /opt/d4e/bin |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
60 RUN useradd d4e |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
61 RUN chown d4e:d4e . |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
62 USER d4e |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
63 |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
64 RUN tar -xf ../src/river/artifacts/target/river-artifacts-1.0-SNAPSHOT-bin.tar |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
65 |
9777
f98e5c7775d2
Do not rely on scripts being executable
Tom Gottfried <tom@intevation.de>
parents:
9776
diff
changeset
|
66 CMD sh bin/run.sh |