Update docker build process

This commit is contained in:
anthorob committed 2022-06-23 11:57:26 -04:00
1 parent 1d26918fb3
commit 6544e982c6
5 files changed
+132 -7

No files matched your search

+10 -2
View File
@@ -1,12 +1,20 @@
FROM openjdk:17-jdk-slim
RUN apt-get -y update
RUN apt-get -y install netcat
RUN apt-get -y install curl
WORKDIR /app
ARG API_PORT=9000
EXPOSE ${API_PORT}
COPY .mvn/ .mvn
COPY mvnw pom.xml ./
COPY src ./src
COPY bot.properties.example bot.properties ./
COPY startup.sh ./
RUN ./mvnw -q -Dmaven.test.skip=true package
RUN ./mvnw install
CMD ["java", "-jar", "target/netneutrality-jar-with-dependencies.jar"]
CMD ["./startup.sh"]
+60
View File
@@ -0,0 +1,60 @@
version: '3.3'
services:
db:
image: mariadb:10.7
restart: always
volumes:
- netneutrality-db:/var/lib/mysql
- ./sql:/docker-entrypoint-initdb.d
environment:
MYSQL_USER: 'java'
MYSQL_PASSWORD: 'password'
MYSQL_DATABASE: 'netneutrality'
MYSQL_ROOT_PASSWORD: 'password'
ports:
- "3306"
networks:
- internal
bot:
image: netneutrality:dev
build: ./
restart: always
depends_on:
- db
environment:
MYSQL_HOST: 'db'
MYSQL_USER: 'java'
MYSQL_PASSWORD: 'password'
MYSQL_DATABASE: 'netneutrality'
ports:
- "9000:9000"
networks:
- internal
webapp:
image: bot-webapp:dev
build: ../netneutrality-webapp
restart: always
depends_on:
- db
- bot
environment:
DB_CONNECTION: 'mysql'
DB_HOST: 'db'
DB_PORT: '3306'
DB_DATABASE: 'netneutrality'
DB_USERNAME: 'java'
DB_PASSWORD: 'password'
BOT_URL: 'http://bot:9000'
ports:
- '8080:80'
networks:
- internal
volumes:
netneutrality-db:
networks:
internal:
+6 -4
View File
@@ -2,22 +2,24 @@ version: '3.3'
services:
db:
image: mysql:5.7
image: mariadb:10.7
restart: always
volumes:
- netneutrality-db:/var/lib/mysql
- ./sql/netneutrality_jpa.sql:/docker-entrypoint-initdb.d/dump.sql
- ./sql:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: 'netneutrality'
MYSQL_USER: 'java'
MYSQL_PASSWORD: 'password'
MYSQL_DATABASE: 'netneutrality'
MYSQL_ROOT_PASSWORD: 'password'
ports:
- "3306"
networks:
- internal
app:
bot:
image: netneutrality:dev
build: ./
restart: always
depends_on:
- db
@@ -25,8 +25,8 @@ public class ActionHandler extends AbstractHandler {
if (path.equals("/actions/shutdown")) {
LoggerFactory.getLogger(NetNeutrality.class).info("Request to shutdown received");
sendStringResponse(exchange, "Shutting down..");
NetNeutrality.shutdown();
sendStringResponse(exchange, "Shutting down..");
System.exit(0);
return;
+55
View File
@@ -0,0 +1,55 @@
#!/bin/bash
function prop {
grep "${1}" bot.properties | cut -d'=' -f2
}
function _term() {
echo "Caught SIGTERM/SIGINT signal, graceful shutdown of bot.."
if [ -z "$pid" ]; then
echo "Bot isn't running, exiting."
exit 0
else
/usr/bin/curl --no-progress-meter http://localhost:"$API_PORT"/actions/shutdown
echo "Waiting 2 seconds for bot shutdown"
sleep 2
fi
}
trap _term SIGTERM
trap _term SIGINT
if [ ! -f /bin/nc ]; then
echo "nc not found. Exiting."
exit 1
fi
if [ -z "$API_PORT" ]; then
API_PORT=9000;
fi
if [ -z "$MYSQL_HOST" ]; then
MYSQL_HOST="$(prop 'MYSQL_HOST')"
fi
if [ -z "$MYSQL_PORT" ]; then
MYSQL_PORT=$(prop 'MYSQL_PORT')
fi
echo "Waiting 10 seconds for database to start.."
sleep 10
echo "Checking if MySQL / MariaDB is started.."
if /bin/nc -z "$MYSQL_HOST" "$MYSQL_PORT"; then
echo "Database OK. Starting bot..";
/usr/local/openjdk-17/bin/java -jar target/netneutrality-jar-with-dependencies.jar &
pid=$!
wait "$pid"
else
echo "No connection to database, shutting down.."
exit 1
fi