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
e5b86f024141 Update repository URL
Tom Gottfried <tom@intevation.de>
parents: 9754
diff changeset
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
4fabdc8ed97b Fix installing SmartGWT
Tom Gottfried <tom@intevation.de>
parents: 9732
diff changeset
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
4fabdc8ed97b Fix installing SmartGWT
Tom Gottfried <tom@intevation.de>
parents: 9732
diff changeset
31 RUN curl -sLO https://www.smartclient.com/builds/SmartGWT/4.1p/LGPL/latest/smartgwt.jar
4fabdc8ed97b Fix installing SmartGWT
Tom Gottfried <tom@intevation.de>
parents: 9732
diff changeset
32 RUN mvn -q install:install-file -Dfile=smartgwt.jar -Dversion=4.1-p20141119 \
4fabdc8ed97b Fix installing SmartGWT
Tom Gottfried <tom@intevation.de>
parents: 9732
diff changeset
33 -DartifactId=smartgwt-lgpl -DgroupId=com.isomorphic.smartgwt.lgpl \
4fabdc8ed97b Fix installing SmartGWT
Tom Gottfried <tom@intevation.de>
parents: 9732
diff changeset
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"]

http://dive4elements.wald.intevation.org