-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile.tomcat
More file actions
129 lines (113 loc) · 6.28 KB
/
Dockerfile.tomcat
File metadata and controls
129 lines (113 loc) · 6.28 KB
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
FROM tomcat:10.1.46-jdk17-temurin
LABEL io.k8s.description="Platform for building and running Entando clustered applications on Apache Tomcat 10" \
io.k8s.display-name="Entando on Apache Tomcat 10"
ENV USERID_TO_USE=185 \
STI_SCRIPTS_PATH="/usr/local/tomcat/bin" \
ENTANDO_COMMON_PATH="/entando-common" \
PORTDB_URL="jdbc:derby:/entando-data/databases/entandoPort;create=true" \
PORTDB_JNDI="java:jboss/datasources/entandoPortDataSource" \
PORTDB_DRIVER="derby" \
PORTDB_USERNAME="agile" \
PORTDB_PASSWORD="agile" \
PORTDB_SERVICE_HOST="dummy" \
PORTDB_SERVICE_PORT="1527" \
SERVDB_URL="jdbc:derby:/entando-data/databases/entandoServ;create=true" \
SERVDB_JNDI="java:jboss/datasources/entandoServDataSource" \
SERVDB_DRIVER="derby" \
SERVDB_USERNAME="agile" \
SERVDB_PASSWORD="agile" \
SERVDB_SERVICE_HOST="dummy" \
SERVDB_SERVICE_PORT="1527" \
PREPARE_DATA="true" \
DB_ENVIRONMENT="production" \
DEPLOYMENTS_DIR="/usr/local/tomcat/webapps" \
ENTANDO_OIDC_ACTIVE="false" \
ENTANDO_OIDC_AUTH_LOCATION="http://definitely.does.not.exist.com" \
ENTANDO_OIDC_TOKEN_LOCATION="http://definitely.does.not.exist.com" \
ENTANDO_OIDC_CLIENT_ID="dummy" \
ENTANDO_OIDC_REDIRECT_BASE_URL="http://definitely.does.not.exist.com" \
ALGO_DEFAULT_KEY="changeit" \
KEYCLOAK_ENABLED="false" \
KEYCLOAK_AUTH_URL="http://definitely.does.not.exist.com" \
KEYCLOAK_REALM="dummy" \
KEYCLOAK_CLIENT_ID="dummy" \
KEYCLOAK_CLIENT_SECRET="dummy" \
KEYCLOAK_PUBLIC_CLIENT_ID="dummy" \
LOGFILEPREFIX="/var/log/entando/engine_" \
LOGACTIVEFILEOUTPUT="true" \
LOGNAME="/var/log/entando/engine.log" \
LOGFILEROTATEPATTERN="/var/log/entando/engine_%i.log.gz" \
APPBUILDERINTEGRATIONENABLED="true" \
APPBUILDERBASEURL="/app-builder/" \
INDEXDISKROOTFOLDER="/entando-data/entando-indices" \
LC_ALL="en_US.UTF-8" \
SPRING_PROFILES_ACTIVE="default"
#######################################
# Update OS, install additional
# packages and add user to run tomcat
#######################################
RUN apt-get update && \
apt-get install -y curl imagemagick nano software-properties-common wget rsync && \
apt-get autoclean -y && \
apt-get autoremove -y && \
useradd -s /sbin/nologin -U -u 185 tomcat && \
chown -R 185:0 /usr/local/tomcat && \
chmod -R ug+w /usr/local/tomcat
#######################################
# Download Jetty Home 12 for database initialization
#######################################
ARG JETTY_VERSION=12.0.27
RUN wget -O /tmp/jetty-home.tar.gz https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/${JETTY_VERSION}/jetty-home-${JETTY_VERSION}.tar.gz && \
tar -xzf /tmp/jetty-home.tar.gz -C /tmp && \
mv /tmp/jetty-home-${JETTY_VERSION} /jetty-home && \
rm /tmp/jetty-home.tar.gz && \
chown -R 185:0 /jetty-home
#######################################
# Copy scripts to prepare and run
#######################################
COPY --chown=185:0 ./common/entando-common "${ENTANDO_COMMON_PATH}"
COPY --chown=185:0 ./common/jetty-runner /jetty-runner
COPY --chown=185:0 tomcat/conf/setenv.sh /usr/local/tomcat/bin/setenv.sh
COPY --chown=185:0 tomcat/run ${STI_SCRIPTS_PATH}/run
#######################################
# Download and copy dbms drivers
#######################################
ARG DERBY_JDBC_DRIVER_VERSION=10.16.1.1
ARG POSTGRESQL_JDBC_DRIVER_VERSION=42.7.8
ARG MYSQL_JDBC_DRIVER_VERSION=9.4.0
ARG ORACLE_JDBC_DRIVER_VERSION=23.9.0.25.07
RUN curl https://repo1.maven.org/maven2/org/apache/derby/derby/${DERBY_JDBC_DRIVER_VERSION}/derby-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derby.jar
RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbytools/${DERBY_JDBC_DRIVER_VERSION}/derbytools-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbytools.jar
RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbyshared/${DERBY_JDBC_DRIVER_VERSION}/derbyshared-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbyshared.jar
RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbynet/${DERBY_JDBC_DRIVER_VERSION}/derbynet-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbynet.jar
RUN curl https://repo1.maven.org/maven2/org/apache/derby/derbyclient/${DERBY_JDBC_DRIVER_VERSION}/derbyclient-${DERBY_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/derbyclient.jar
RUN curl https://repo1.maven.org/maven2/org/postgresql/postgresql/${POSTGRESQL_JDBC_DRIVER_VERSION}/postgresql-${POSTGRESQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/postgresql.jar
RUN curl https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/${MYSQL_JDBC_DRIVER_VERSION}/mysql-connector-j-${MYSQL_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/mysql-connector-java.jar
RUN curl https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/${ORACLE_JDBC_DRIVER_VERSION}/ojdbc8-${ORACLE_JDBC_DRIVER_VERSION}.jar -o /jetty-runner/ojdbc8.jar
RUN cp /jetty-runner/postgresql.jar /usr/local/tomcat/lib/ && \
cp /jetty-runner/derby*.jar /usr/local/tomcat/lib/ && \
cp /jetty-runner/mysql-connector-java.jar /usr/local/tomcat/lib/ && \
cp /jetty-runner/ojdbc8.jar /usr/local/tomcat/lib/
#######################################
# Copy the Tomcat lib
#######################################
COPY --chown=185:0 tomcat/libs/ /usr/local/tomcat/lib/
#######################################
# Copy Tomcat config files
#######################################
COPY --chown=185:0 tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml
COPY --chown=185:0 tomcat/conf/context.xml /usr/local/tomcat/conf/context.xml
COPY --chown=185:0 tomcat/conf/web.xml /usr/local/tomcat/conf/web.xml
# Overwrite log configuration to stdout only
COPY --chown=185:0 tomcat/conf/logging.properties /usr/local/tomcat/conf/logging.properties
#######################################
# Create dirs and add run permission
#######################################
RUN mkdir -p /entando-data/databases && chown -Rf $USERID_TO_USE:0 /entando-data/ && chmod -Rf ug+rw /entando-data/ && \
mkdir -p /entando-data-templates && chown -Rf $USERID_TO_USE:0 /entando-data-templates/ && chmod -Rf ug+rw /entando-data-templates/ && \
chmod +x /usr/local/tomcat/bin/run && \
chmod +x /usr/local/tomcat/bin/setenv.sh
EXPOSE 8080
USER $USERID_TO_USE
CMD "${STI_SCRIPTS_PATH}/run"
VOLUME /entando-data