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
|
FROM openjdk:17-jdk-slim
|
||||||
|
|
||||||
|
RUN apt-get -y update
|
||||||
|
RUN apt-get -y install netcat
|
||||||
|
RUN apt-get -y install curl
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
ARG API_PORT=9000
|
||||||
|
EXPOSE ${API_PORT}
|
||||||
|
|
||||||
COPY .mvn/ .mvn
|
COPY .mvn/ .mvn
|
||||||
COPY mvnw pom.xml ./
|
COPY mvnw pom.xml ./
|
||||||
COPY src ./src
|
COPY src ./src
|
||||||
COPY bot.properties.example bot.properties ./
|
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:
|
services:
|
||||||
db:
|
db:
|
||||||
image: mysql:5.7
|
image: mariadb:10.7
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- netneutrality-db:/var/lib/mysql
|
- netneutrality-db:/var/lib/mysql
|
||||||
- ./sql/netneutrality_jpa.sql:/docker-entrypoint-initdb.d/dump.sql
|
- ./sql:/docker-entrypoint-initdb.d
|
||||||
environment:
|
environment:
|
||||||
MYSQL_DATABASE: 'netneutrality'
|
|
||||||
MYSQL_USER: 'java'
|
MYSQL_USER: 'java'
|
||||||
MYSQL_PASSWORD: 'password'
|
MYSQL_PASSWORD: 'password'
|
||||||
|
MYSQL_DATABASE: 'netneutrality'
|
||||||
MYSQL_ROOT_PASSWORD: 'password'
|
MYSQL_ROOT_PASSWORD: 'password'
|
||||||
ports:
|
ports:
|
||||||
- "3306"
|
- "3306"
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
app:
|
|
||||||
|
bot:
|
||||||
image: netneutrality:dev
|
image: netneutrality:dev
|
||||||
|
build: ./
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ public class ActionHandler extends AbstractHandler {
|
|||||||
|
|
||||||
if (path.equals("/actions/shutdown")) {
|
if (path.equals("/actions/shutdown")) {
|
||||||
LoggerFactory.getLogger(NetNeutrality.class).info("Request to shutdown received");
|
LoggerFactory.getLogger(NetNeutrality.class).info("Request to shutdown received");
|
||||||
sendStringResponse(exchange, "Shutting down..");
|
|
||||||
NetNeutrality.shutdown();
|
NetNeutrality.shutdown();
|
||||||
|
sendStringResponse(exchange, "Shutting down..");
|
||||||
|
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
return;
|
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