mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-03-31 06:24:11 -04:00
use debian container, shrink size by half
This commit is contained in:
64
Dockerfile
64
Dockerfile
@@ -1,26 +1,38 @@
|
|||||||
# build svelte app
|
FROM debian:bullseye-slim as base
|
||||||
FROM node:17-alpine as npm-build
|
|
||||||
WORKDIR /install
|
FROM base as python-build
|
||||||
COPY app/frontend/package*.json ./
|
ENV PYTHONUNBUFFERED 1
|
||||||
RUN npm install
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
COPY app/frontend/src ./src
|
WORKDIR /python-build
|
||||||
COPY app/frontend/public ./public
|
RUN apt-get update &&\
|
||||||
COPY app/frontend/rollup.config.js ./
|
apt-get install -y --no-install-recommends build-essential python3 python3-dev python3-pip python3-venv default-libmysqlclient-dev libpq-dev &&\
|
||||||
RUN npm run build
|
python3 -m venv /python-build/venv
|
||||||
|
ENV PATH="/python-build/venv/bin:$PATH"
|
||||||
# build python dependencies
|
COPY app/backend/requirements.txt .
|
||||||
FROM python:3.10-alpine
|
RUN python3 -m pip install --no-cache-dir --upgrade pip &&\
|
||||||
ENV PYTHONUNBUFFERED 1
|
pip install --no-cache-dir -r requirements.txt
|
||||||
WORKDIR /app
|
|
||||||
RUN apk update &&\
|
FROM node:17-bullseye-slim as node-build
|
||||||
apk add musl-dev build-base gcc libffi-dev libressl-dev postgresql-dev mariadb-dev nodejs npm iputils nmap curl bash &&\
|
WORKDIR /node-build
|
||||||
rm -rf /var/cache/apk/*
|
COPY app/frontend/package*.json ./
|
||||||
COPY app/backend/requirements.txt .
|
COPY app/frontend/src ./src
|
||||||
RUN python -m pip install --no-cache-dir --upgrade pip &&\
|
COPY app/frontend/public ./public
|
||||||
pip install --no-cache-dir -r requirements.txt &&\
|
COPY app/frontend/rollup.config.js ./
|
||||||
apk del build-base gcc libffi-dev libressl-dev postgresql-dev
|
RUN npm install
|
||||||
COPY app/backend ./backend
|
RUN npm run build
|
||||||
COPY --from=npm-build /install ./frontend
|
|
||||||
COPY app/run.sh ./
|
FROM base
|
||||||
|
WORKDIR /app
|
||||||
CMD ["./run.sh"]
|
ENV PYTHONUNBUFFERED 1
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN apt-get update &&\
|
||||||
|
apt-get install -y --no-install-recommends nodejs npm iputils-ping nmap &&\
|
||||||
|
apt-get clean &&\
|
||||||
|
rm -rf /var/lib/{apt,dpkg,cache,log}/
|
||||||
|
COPY --from=python-build /python-build/venv /app/venv
|
||||||
|
ENV PATH="/app/venv/bin:$PATH"
|
||||||
|
COPY --from=node-build /node-build ./frontend
|
||||||
|
COPY app/backend ./backend
|
||||||
|
COPY app/run.sh ./
|
||||||
|
|
||||||
|
CMD ["./run.sh"]
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ python3 manage.py makemigrations
|
|||||||
python3 manage.py migrate
|
python3 manage.py migrate
|
||||||
python3 manage.py collectstatic --noinput
|
python3 manage.py collectstatic --noinput
|
||||||
python3 manage.py shell < setup.py
|
python3 manage.py shell < setup.py
|
||||||
celery -A backend worker &
|
python3 -m celery -A backend worker &
|
||||||
celery -A backend beat &
|
python3 -m celery -A backend beat &
|
||||||
gunicorn --bind 0.0.0.0:"$DJANGO_PORT" --workers 4 backend.asgi:application -k uvicorn.workers.UvicornWorker &
|
python3 -m gunicorn --bind 0.0.0.0:"$DJANGO_PORT" --workers 4 backend.asgi:application -k uvicorn.workers.UvicornWorker &
|
||||||
|
|
||||||
|
|
||||||
|
# start frontend
|
||||||
cd /app/frontend/ || exit
|
cd /app/frontend/ || exit
|
||||||
npm start
|
npm start
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ version: "3"
|
|||||||
services:
|
services:
|
||||||
upsnap_django:
|
upsnap_django:
|
||||||
container_name: upsnap_django
|
container_name: upsnap_django
|
||||||
image: seriousm4x/upsnap:latest
|
#image: seriousm4x/upsnap:latest
|
||||||
|
build: .
|
||||||
network_mode: host
|
network_mode: host
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
Reference in New Issue
Block a user