61 lines
		
	
	
		
			No EOL
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			No EOL
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Clone git repository form specified tag
 | |
| FROM alpine/git
 | |
| 
 | |
| ARG SEBSERVER_VERSION
 | |
| ARG GIT_TAG="v${SEBSERVER_VERSION}"
 | |
| 
 | |
| WORKDIR /sebserver
 | |
| RUN if [ "x${GIT_TAG}" = "x" ] ; \
 | |
|     then git clone --depth 1 https://github.com/SafeExamBrowser/seb-server.git ; \
 | |
|     else git clone -b "$GIT_TAG" --depth 1 https://github.com/SafeExamBrowser/seb-server.git ; fi
 | |
| 
 | |
| # Build with maven (skip tests)
 | |
| FROM maven:latest
 | |
| 
 | |
| ARG SEBSERVER_VERSION
 | |
| 
 | |
| WORKDIR /sebserver
 | |
| COPY --from=0 /sebserver/seb-server /sebserver
 | |
| RUN mvn clean install -DskipTests
 | |
| 
 | |
| FROM openjdk:11-jre-stretch
 | |
| 
 | |
| ARG SEBSERVER_VERSION
 | |
| ENV SEBSERVER_JAR="seb-server-${SEBSERVER_VERSION}.jar"
 | |
| ENV SERVER_PORT="8080"
 | |
| ENV JMX_PORT=
 | |
| 
 | |
| WORKDIR /sebserver
 | |
| COPY --from=1 /sebserver/target/"$SEBSERVER_JAR" /sebserver
 | |
| 
 | |
| CMD if [ "x${JMX_PORT}" = "x" ] ; \
 | |
|         then secret=$(cat /sebserver/config/secret) && exec java \
 | |
|             -Xms64M \
 | |
|             -Xmx1G \
 | |
|             -jar "${SEBSERVER_JAR}" \
 | |
|             --spring.profiles.active=prod,prod-gui,prod-ws \
 | |
|             --spring.config.location=file:/sebserver/config/spring/,classpath:/config/ \
 | |
|             --sebserver.certs.password="${secret}" \ 
 | |
|             --sebserver.mariadb.password="${secret}" \
 | |
|             --sebserver.password="${secret}" ; \
 | |
|         else secret=$(cat /sebserver/config/secret) && exec java \
 | |
|             -Xms64M \
 | |
|             -Xmx1G \
 | |
|             -Dcom.sun.management.jmxremote \
 | |
|             -Dcom.sun.management.jmxremote.port=${JMX_PORT} \
 | |
|             -Dcom.sun.management.jmxremote.rmi.port=${JMX_PORT} \
 | |
|             -Djava.rmi.server.hostname=localhost \
 | |
|             -Dcom.sun.management.jmxremote.local.only=false \
 | |
|             -Dcom.sun.management.jmxremote.ssl=false \
 | |
|             -Dcom.sun.management.jmxremote.authenticate=true \
 | |
|             -Dcom.sun.management.jmxremote.password.file=/sebserver/config/jmx/jmxremote.password \
 | |
|             -Dcom.sun.management.jmxremote.access.file=/sebserver/config/jmx/jmxremote.access \
 | |
|             -jar "${SEBSERVER_JAR}" \
 | |
|             --spring.profiles.active=prod,prod-gui,prod-ws \
 | |
|             --spring.config.location=file:/sebserver/config/spring/,classpath:/config/ \
 | |
|             --sebserver.certs.password="${secret}" \ 
 | |
|             --sebserver.mariadb.password="${secret}" \
 | |
|             --sebserver.password="${secret}" ; \
 | |
|         fi
 | |
| 
 | |
| EXPOSE $SERVER_PORT $JMX_PORT | 
