Update docker build process
This commit is contained in:
1 parent
1d26918fb3
commit
6544e982c6
5 files changed
+132
-7
No files matched your search
+10
-2
@@ -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"]
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user