Mercurial > dive4elements > river
annotate docker/Dockerfile.artifacts @ 9790:75dc4ea60938 3.2.x
Drop using explicit container names
Compose will generate names for the containers and containers can connect
each other on the network via the service names. This avoids the
unnecessary extra "name space" and prepares the application for usage
with different project names.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 20 Jul 2023 10:25:59 +0200 |
parents | c670bf2ec4b0 |
children | a9641367812c |
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 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
10 # Install prerequisites |
9732
a6c6bba0fc4b
Run yum commands silently
Tom Gottfried <tom@intevation.de>
parents:
9731
diff
changeset
|
11 RUN yum -q -y install maven mercurial curl |
9716
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
12 |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
13 # Add DEMs from demo dataset |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
14 ENV DEM_DIR /opt/d4e-river/dgm |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
15 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
|
16 RUN mkdir -p $DEM_DIR |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
17 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
|
18 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
|
19 |
9764
b5d4cb088737
Add named volume for DEM data
Tom Gottfried <tom@intevation.de>
parents:
9737
diff
changeset
|
20 # Volume for DEM data |
b5d4cb088737
Add named volume for DEM data
Tom Gottfried <tom@intevation.de>
parents:
9737
diff
changeset
|
21 VOLUME $DEM_DIR |
b5d4cb088737
Add named volume for DEM data
Tom Gottfried <tom@intevation.de>
parents:
9737
diff
changeset
|
22 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
23 |
9731
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
24 WORKDIR /opt/d4e/src |
9776 | 25 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
|
26 ENV BRANCH 3.2.x |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
27 RUN hg clone -b $BRANCH $REPO_URL/framework |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
28 RUN hg clone -b $BRANCH $REPO_URL/http-client |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
29 |
9733
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
30 RUN mvn -q -DskipTests -f framework/pom.xml install |
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
31 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
|
32 |
9779
3847836c60b5
Improve backend build for different database backends
Tom Gottfried <tom@intevation.de>
parents:
9777
diff
changeset
|
33 # 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
|
34 ARG ORACLE |
9782
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
35 ADD ./backend river/backend |
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
36 ADD checkstyle.xml river/ |
9733
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
37 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
|
38 |
9782
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
39 # 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
|
40 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
|
41 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
|
42 ADD ./artifacts river/artifacts |
c670bf2ec4b0
Download dependencies before adding sources to leverage build cache
Tom Gottfried <tom@intevation.de>
parents:
9779
diff
changeset
|
43 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
44 WORKDIR river/artifacts |
9716
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
45 |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
46 # Install WSPLGEN |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
47 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
|
48 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
|
49 |
c3afc0274bba
Improve Docker-based development setup
Tom Gottfried <tom@intevation.de>
parents:
9715
diff
changeset
|
50 # Create h2 databases |
9777
f98e5c7775d2
Do not rely on scripts being executable
Tom Gottfried <tom@intevation.de>
parents:
9776
diff
changeset
|
51 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
|
52 RUN sh ./bin/createDatacage.sh |
9731
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
53 |
9733
93b9034613bc
Skip tests in docker build
Tom Gottfried <tom@intevation.de>
parents:
9732
diff
changeset
|
54 RUN mvn -q -DskipTests package assembly:single |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
55 |
9731
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
56 WORKDIR /opt/d4e/bin |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
57 RUN useradd d4e |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
58 RUN chown d4e:d4e . |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
59 USER d4e |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
60 |
1dfcbb09c231
Improve server deployment in Docker container
Tom Gottfried <tom@intevation.de>
parents:
9726
diff
changeset
|
61 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
|
62 |
9777
f98e5c7775d2
Do not rely on scripts being executable
Tom Gottfried <tom@intevation.de>
parents:
9776
diff
changeset
|
63 CMD sh bin/run.sh |