nginx unit works

This commit is contained in:
MassiveAtoms
2021-03-05 10:32:42 -03:00
parent f34200901e
commit 7b033454b3
9 changed files with 124 additions and 65 deletions

View File

@@ -2,23 +2,22 @@
## pull official base image
FROM nginx/unit:1.22.0-python3.9
EXPOSE 80
ENV AM_DOCKER_INSTANCE Yes
## set work directory
WORKDIR /usr/src/app
WORKDIR /app
## install dependencies
COPY ./requirements.txt .
RUN pip install -r requirements.txt
## copy project
COPY ./CalibreWebCompanion ./CalibreWebCompanion
COPY ./deployment/entrypoints/* /docker-entrypoint.d/
# perms
RUN chown -R unit:unit /usr/src/app
RUN chown -R unit:unit /app
COPY ./deployment/entrypoints/* /docker-entrypoint.d/
RUN chmod +x /docker-entrypoint.d/start.sh
# docker run --publish 80:80 \
# -v '/home/MassiveAtoms/Desktop/logs:/usr/src/app/data' \
# -v '/home/MassiveAtoms/windows/Users/MassiveAtoms/Documents/Calibre Library/:/usr/src/app/calibredir' \
# -v '/home/MassiveAtoms/Desktop/logs:/app/data' \
# -v '/home/MassiveAtoms/windows/Users/MassiveAtoms/Documents/Calibre Library/:/app/calibredir' \
# --name cw calibreweb:1.0

View File

@@ -6,14 +6,30 @@
},
"routes": [
{
"match": {"uri": "/static/*"},
"action": {"share": "/usr/src/app/CalibreWebCompanion/static"}
"match": {
"uri": [
"/content/*",
"!~\\.db"
]
},
"action": {
"share": "/app/"
}
},
{
"match": {"uri": "/download/*"},
"action": {"share": "/usr/src/app/calibredir"}
"match": {
"uri": "/static/*"
},
"action": {
"share": "/app/CalibreWebCompanion/"
}
},
{
"match": {
"uri": [
"!~\\.db", "*"
]
},
"action": {
"pass": "applications/django"
}
@@ -22,12 +38,16 @@
"applications": {
"django": {
"type": "python 3",
"path": "/usr/src/app/CalibreWebCompanion/",
"path": "/app/CalibreWebCompanion/",
"module": "CalibreWebCompanion.wsgi",
"environment": {
"DJANGO_SETTINGS_MODULE": "CalibreWebCompanion.settings",
"DB_ENGINE": "django.db.backends.sqlite3"
},
"processes" : {
"max": 25,
"spare": 1,
"idle_timeout": 20
}
}
}

View File

@@ -1,5 +1,22 @@
path=/usr/src/app/CalibreWebCompanion
chown -R unit:unit /usr/src/app
CAL_DIR="/app/content/"
DATA_DIR="/app/data/"
CWC_PATH="/app/CalibreWebCompanion"
if [ ! -d "$CAL_DIR" ]; then
echo "Calibre Library not mounted at the correct location."
echo "Mount it at /app/content/"
echo "Exiting..."
exit 1
fi
python "${path}/manage.py" makemigrations
python "${path}/manage.py" migrate
if [ ! -d "$DATA_DIR" ]; then
echo "A data directory not mounted at the correct location, exiting"
echo "This is used to store the database and logs"
echo "mount something at /app/data/"
echo "exiting"
exit 1
fi
cp -R -u -p "/app/CalibreWebCompanion/db.sqlite3" "/app/data/"
ls -l /app
python "${CWC_PATH}/manage.py" makemigrations
python "${CWC_PATH}/manage.py" migrate

View File

@@ -8,12 +8,12 @@
Here's an example of step 5
```
docker run --publish 80:80 \
-v '/home/MassiveAtoms/Desktop/logs:/usr/src/app/data' \
-v '/home/MassiveAtoms/windows/Users/MassiveAtoms/Documents/Calibre\ Library/:/usr/src/app/calibredir' \
-v '/home/MassiveAtoms/Desktop/logs:/app/data' \
-v '/home/MassiveAtoms/windows/Users/MassiveAtoms/Documents/Calibre\ Library/:/app/calibredir' \
--name cw calibreweb:1.0
```
your Calibre path/volume/whatever needs to be mounted at `/usr/src/app/calibredir`, and you need to mount a volume for the db and logs at `/usr/src/app/data`
your Calibre path/volume/whatever needs to be mounted at `/app/calibredir`, and you need to mount a volume for the db and logs at `/app/data`
Issues with it at the moment:
1. we still need to do something to create a random secret key. Atm, this would still