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 |
||||
ENV PYTHONUNBUFFERED=1 NODE_ENV=production |
||||
ENV PYTHONUNBUFFERED=1 NODE_ENV=production TZ=Australia/Sydney |
||||
WORKDIR /app |
||||
COPY ./netmon.py ./ |
||||
CMD [ "python", "./netmon.py" , "monitor" ] |
||||
RUN pip install supervisor |
||||
COPY --from=builder /app ./ |
||||
ENTRYPOINT ["supervisord", "-c", "/app/supervisord.conf"] |
||||
|
||||
# copy index/views/public/pkg.json/postcss/tailwind configs |
||||
#npm i |
||||
#build css |
||||
#run supervisord or wrapper |
||||
EXPOSE 3000 |
@ -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