mirror of
https://github.com/seriousm4x/UpSnap.git
synced 2026-07-28 08:23: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 node:17-alpine as npm-build
|
||||
WORKDIR /install
|
||||
COPY app/frontend/package*.json ./
|
||||
RUN npm install
|
||||
COPY app/frontend/src ./src
|
||||
COPY app/frontend/public ./public
|
||||
COPY app/frontend/rollup.config.js ./
|
||||
RUN npm run build
|
||||
|
||||
# build python dependencies
|
||||
FROM python:3.10-alpine
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
WORKDIR /app
|
||||
RUN apk update &&\
|
||||
apk add musl-dev build-base gcc libffi-dev libressl-dev postgresql-dev mariadb-dev nodejs npm iputils nmap curl bash &&\
|
||||
rm -rf /var/cache/apk/*
|
||||
COPY app/backend/requirements.txt .
|
||||
RUN python -m pip install --no-cache-dir --upgrade pip &&\
|
||||
pip install --no-cache-dir -r requirements.txt &&\
|
||||
apk del build-base gcc libffi-dev libressl-dev postgresql-dev
|
||||
COPY app/backend ./backend
|
||||
COPY --from=npm-build /install ./frontend
|
||||
COPY app/run.sh ./
|
||||
|
||||
CMD ["./run.sh"]
|
||||
FROM debian:bullseye-slim as base
|
||||
|
||||
FROM base as python-build
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
WORKDIR /python-build
|
||||
RUN apt-get update &&\
|
||||
apt-get install -y --no-install-recommends build-essential python3 python3-dev python3-pip python3-venv default-libmysqlclient-dev libpq-dev &&\
|
||||
python3 -m venv /python-build/venv
|
||||
ENV PATH="/python-build/venv/bin:$PATH"
|
||||
COPY app/backend/requirements.txt .
|
||||
RUN python3 -m pip install --no-cache-dir --upgrade pip &&\
|
||||
pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
FROM node:17-bullseye-slim as node-build
|
||||
WORKDIR /node-build
|
||||
COPY app/frontend/package*.json ./
|
||||
COPY app/frontend/src ./src
|
||||
COPY app/frontend/public ./public
|
||||
COPY app/frontend/rollup.config.js ./
|
||||
RUN npm install
|
||||
RUN npm run build
|
||||
|
||||
FROM base
|
||||
WORKDIR /app
|
||||
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 collectstatic --noinput
|
||||
python3 manage.py shell < setup.py
|
||||
celery -A backend worker &
|
||||
celery -A backend beat &
|
||||
gunicorn --bind 0.0.0.0:"$DJANGO_PORT" --workers 4 backend.asgi:application -k uvicorn.workers.UvicornWorker &
|
||||
|
||||
python3 -m celery -A backend worker &
|
||||
python3 -m celery -A backend beat &
|
||||
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
|
||||
npm start
|
||||
|
||||
@@ -2,7 +2,8 @@ version: "3"
|
||||
services:
|
||||
upsnap_django:
|
||||
container_name: upsnap_django
|
||||
image: seriousm4x/upsnap:latest
|
||||
#image: seriousm4x/upsnap:latest
|
||||
build: .
|
||||
network_mode: host
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
|
||||
Reference in New Issue
Block a user