david
3 years ago
9 changed files with 171 additions and 46 deletions
@ -1,10 +1,16 @@ |
|||||||
|
FROM nikolaik/python-nodejs:python3.9-nodejs16-alpine AS builder |
||||||
|
WORKDIR /app |
||||||
|
COPY . ./ |
||||||
|
RUN NODE_ENV=development npm install \ |
||||||
|
&& NODE_ENV=production npm run build:css \ |
||||||
|
&& rm -rf node_modules \ |
||||||
|
&& NODE_ENV=production npm install |
||||||
|
|
||||||
FROM nikolaik/python-nodejs:python3.9-nodejs16-alpine |
FROM nikolaik/python-nodejs:python3.9-nodejs16-alpine |
||||||
ENV PYTHONUNBUFFERED=1 NODE_ENV=production |
ENV PYTHONUNBUFFERED=1 NODE_ENV=production TZ=Australia/Sydney |
||||||
WORKDIR /app |
WORKDIR /app |
||||||
COPY ./netmon.py ./ |
RUN pip install supervisor |
||||||
CMD [ "python", "./netmon.py" , "monitor" ] |
COPY --from=builder /app ./ |
||||||
|
ENTRYPOINT ["supervisord", "-c", "/app/supervisord.conf"] |
||||||
|
|
||||||
# copy index/views/public/pkg.json/postcss/tailwind configs |
EXPOSE 3000 |
||||||
#npm i |
|
||||||
#build css |
|
||||||
#run supervisord or wrapper |
|
@ -0,0 +1,8 @@ |
|||||||
|
--- |
||||||
|
version: '3.7' |
||||||
|
|
||||||
|
services: |
||||||
|
netmon-build: |
||||||
|
build: |
||||||
|
context: . |
||||||
|
image: daveplsno/netmon:latest |
@ -1,36 +0,0 @@ |
|||||||
#!/bin/bash |
|
||||||
|
|
||||||
# Start the first process |
|
||||||
./my_first_process -D |
|
||||||
status=$? |
|
||||||
if [ $status -ne 0 ]; then |
|
||||||
echo "Failed to start my_first_process: $status" |
|
||||||
exit $status |
|
||||||
fi |
|
||||||
|
|
||||||
# Start the second process |
|
||||||
./my_second_process -D |
|
||||||
status=$? |
|
||||||
if [ $status -ne 0 ]; then |
|
||||||
echo "Failed to start my_second_process: $status" |
|
||||||
exit $status |
|
||||||
fi |
|
||||||
|
|
||||||
# Naive check runs checks once a minute to see if either of the processes exited. |
|
||||||
# This illustrates part of the heavy lifting you need to do if you want to run |
|
||||||
# more than one service in a container. The container exits with an error |
|
||||||
# if it detects that either of the processes has exited. |
|
||||||
# Otherwise it loops forever, waking up every 60 seconds |
|
||||||
|
|
||||||
while sleep 60; do |
|
||||||
ps aux |grep my_first_process |grep -q -v grep |
|
||||||
PROCESS_1_STATUS=$? |
|
||||||
ps aux |grep my_second_process |grep -q -v grep |
|
||||||
PROCESS_2_STATUS=$? |
|
||||||
# If the greps above find anything, they exit with 0 status |
|
||||||
# If they are not both 0, then something is wrong |
|
||||||
if [ $PROCESS_1_STATUS -ne 0 -o $PROCESS_2_STATUS -ne 0 ]; then |
|
||||||
echo "One of the processes has already exited." |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
done |
|
@ -0,0 +1,27 @@ |
|||||||
|
[supervisord] |
||||||
|
user=root |
||||||
|
nodaemon=true |
||||||
|
logfile=/app/supervisord.log |
||||||
|
logfile_maxbytes=0 |
||||||
|
pidfile=/var/run/supervisord.pid |
||||||
|
loglevel = INFO |
||||||
|
|
||||||
|
[program:netmon] |
||||||
|
command = python netmon.py monitor |
||||||
|
autostart=true |
||||||
|
autorestart=true |
||||||
|
priority=5 |
||||||
|
stdout_logfile=/dev/stdout |
||||||
|
stdout_logfile_maxbytes=0 |
||||||
|
stderr_logfile=/dev/stderr |
||||||
|
stderr_logfile_maxbytes=0 |
||||||
|
|
||||||
|
[program:express] |
||||||
|
command = npm run prod |
||||||
|
autostart=true |
||||||
|
autorestart=true |
||||||
|
priority=5 |
||||||
|
stdout_logfile=/dev/stdout |
||||||
|
stdout_logfile_maxbytes=0 |
||||||
|
stderr_logfile=/dev/stderr |
||||||
|
stderr_logfile_maxbytes=0 |
Loading…
Reference in new issue