Mercurial > dive4elements > river
annotate docker/Dockerfile.gwt-client @ 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 | df61a569a289 |
children | 8d71363cd3bd |
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 GWT client |
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:
9687
diff
changeset
|
6 # Necessary to run further yum-installs inside Docker container, |
278d285a16bf
Ensure needed packages are installed
Tom Gottfried <tom@intevation.de>
parents:
9687
diff
changeset
|
7 # if not already part of the base image: |
9732
a6c6bba0fc4b
Run yum commands silently
Tom Gottfried <tom@intevation.de>
parents:
9720
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:
9687
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:
9720
diff
changeset
|
11 RUN yum -q -y install maven mercurial tomcat gnu-free-sans-fonts curl |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
12 |
9787
df61a569a289
Prevent Tomcat from logging to files
Tom Gottfried <tom@intevation.de>
parents:
9781
diff
changeset
|
13 # Prevent Tomcat from logging to files |
df61a569a289
Prevent Tomcat from logging to files
Tom Gottfried <tom@intevation.de>
parents:
9781
diff
changeset
|
14 # (JRE default is logging to System.err) |
df61a569a289
Prevent Tomcat from logging to files
Tom Gottfried <tom@intevation.de>
parents:
9781
diff
changeset
|
15 RUN rm /etc/tomcat/logging.properties |
df61a569a289
Prevent Tomcat from logging to files
Tom Gottfried <tom@intevation.de>
parents:
9781
diff
changeset
|
16 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
17 WORKDIR /opt/d4e |
9776 | 18 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
|
19 ENV BRANCH 3.2.x |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
20 RUN hg clone -b $BRANCH $REPO_URL/framework |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
21 RUN hg clone -b $BRANCH $REPO_URL/http-client |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
22 |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
23 RUN mvn -q -f framework/pom.xml install |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
24 RUN mvn -q -f http-client/pom.xml install |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
25 |
9741 | 26 RUN curl -sLO "https://github.com/openlayers/ol2/releases/download/release-2.11/OpenLayers-2.11.tar.gz" |
9685
2dad42df79a8
Add OpenLayers in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
27 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
28 # Use latest patch release and fake version=4.1-p20141119 to work around |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
29 # the actual version (which is known to work properly) |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
30 # is not publicly available |
9741 | 31 RUN curl -sLO https://www.smartclient.com/builds/SmartGWT/4.1p/LGPL/latest/smartgwt.jar |
32 RUN mvn -q install:install-file -Dfile=smartgwt.jar -Dversion=4.1-p20141119 \ | |
33 -DartifactId=smartgwt-lgpl -DgroupId=com.isomorphic.smartgwt.lgpl \ | |
34 -Dpackaging=jar | |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
35 |
9781
7b7a58a93864
Leverage build cache for downloading dependencies
Tom Gottfried <tom@intevation.de>
parents:
9780
diff
changeset
|
36 # Download dependencies before adding sources to leverage build cache |
7b7a58a93864
Leverage build cache for downloading dependencies
Tom Gottfried <tom@intevation.de>
parents:
9780
diff
changeset
|
37 ADD gwt-client/pom.xml river/gwt-client/ |
7b7a58a93864
Leverage build cache for downloading dependencies
Tom Gottfried <tom@intevation.de>
parents:
9780
diff
changeset
|
38 RUN mvn -q -f river/gwt-client/pom.xml dependency:go-offline |
7b7a58a93864
Leverage build cache for downloading dependencies
Tom Gottfried <tom@intevation.de>
parents:
9780
diff
changeset
|
39 |
9780
a517ed28f133
Do not add unused other river modules to the client image
Tom Gottfried <tom@intevation.de>
parents:
9776
diff
changeset
|
40 ADD checkstyle.xml river/ |
a517ed28f133
Do not add unused other river modules to the client image
Tom Gottfried <tom@intevation.de>
parents:
9776
diff
changeset
|
41 ADD gwt-client river/gwt-client/ |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
42 |
9685
2dad42df79a8
Add OpenLayers in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
43 RUN tar -C river/gwt-client/src/main/webapp \ |
2dad42df79a8
Add OpenLayers in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
44 --exclude=OpenLayers-2.11/doc --exclude=OpenLayers-2.11/tests \ |
2dad42df79a8
Add OpenLayers in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
45 --exclude=OpenLayers-2.11/examples -xf OpenLayers-2.11.tar.gz |
2dad42df79a8
Add OpenLayers in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9684
diff
changeset
|
46 RUN rm OpenLayers-2.11.tar.gz |
9781
7b7a58a93864
Leverage build cache for downloading dependencies
Tom Gottfried <tom@intevation.de>
parents:
9780
diff
changeset
|
47 |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
48 RUN mvn -q -f river/gwt-client/pom.xml package && \ |
9686
33303817ed37
Deploy webapp as d4e-river
Tom Gottfried <tom@intevation.de>
parents:
9685
diff
changeset
|
49 mv river/gwt-client/target/gwt-client-*.war \ |
33303817ed37
Deploy webapp as d4e-river
Tom Gottfried <tom@intevation.de>
parents:
9685
diff
changeset
|
50 /usr/share/tomcat/webapps/d4e-river.war |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
51 |
9743
d1dcb8d28b0d
Consider map printing in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9742
diff
changeset
|
52 # Configure tomcat |
d1dcb8d28b0d
Consider map printing in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9742
diff
changeset
|
53 RUN sed -i '/Connector port="8080"/a \URIEncoding="UTF-8"' /etc/tomcat/server.xml |
9747
cfc0aab9947f
Enable bind-mounting client configuration in docker container
Tom Gottfried <tom@intevation.de>
parents:
9743
diff
changeset
|
54 RUN ln -sf /opt/d4e/river/gwt-client/config/context.xml /etc/tomcat |
cfc0aab9947f
Enable bind-mounting client configuration in docker container
Tom Gottfried <tom@intevation.de>
parents:
9743
diff
changeset
|
55 VOLUME /opt/d4e/river/gwt-client/config |
9743
d1dcb8d28b0d
Consider map printing in Docker setup
Tom Gottfried <tom@intevation.de>
parents:
9742
diff
changeset
|
56 |
9742
df5c6f3ef893
Do not run tomcat as root
Tom Gottfried <tom@intevation.de>
parents:
9741
diff
changeset
|
57 USER tomcat |
df5c6f3ef893
Do not run tomcat as root
Tom Gottfried <tom@intevation.de>
parents:
9741
diff
changeset
|
58 ADD docker/flys_user_file /usr/share/tomcat/ |
9684
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
59 |
537fe44f2792
Add basic Docker setup for development
Tom Gottfried <tom@intevation.de>
parents:
diff
changeset
|
60 CMD ["/usr/libexec/tomcat/server", "start"] |