2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-30 04:26:44 +00:00

docker-compose improvements

- Prepend "inventree" to the name of each container
- Explicitly expose more env variables required for InvenTree db lookup
- Adjust server name in nginx-conf file
This commit is contained in:
Oliver Walters 2021-04-22 12:15:25 +10:00
parent 99060159e3
commit 52deb20e85
3 changed files with 28 additions and 27 deletions

View File

@ -29,16 +29,6 @@ ENV INVENTREE_SECRET_KEY_FILE="${INVENTREE_DATA_DIR}/secret_key.txt"
# Default web server port is 8000 # Default web server port is 8000
ENV INVENTREE_WEB_PORT="8000" ENV INVENTREE_WEB_PORT="8000"
# Pass DB configuration through as environment variables
# Default configuration = postgresql
ENV INVENTREE_DB_ENGINE="postgresql"
ENV INVENTREE_DB_NAME="inventree"
ENV INVENTREE_DB_HOST="db"
ENV INVENTREE_DB_PORT="5432"
# INVENTREE_DB_USER must be specified at run-time
# INVENTREE_DB_PASSWORD must be specified at run-time
LABEL org.label-schema.schema-version="1.0" \ LABEL org.label-schema.schema-version="1.0" \
org.label-schema.build-date=${DATE} \ org.label-schema.build-date=${DATE} \
org.label-schema.vendor="inventree" \ org.label-schema.vendor="inventree" \

View File

@ -19,8 +19,8 @@ services:
# Use PostgreSQL as the database backend # Use PostgreSQL as the database backend
# Note: this can be changed to a different backend, # Note: this can be changed to a different backend,
# just make sure that you change the INVENTREE_DB_xxx vars below # just make sure that you change the INVENTREE_DB_xxx vars below
db: inventree-db:
container_name: db container_name: inventree-db
image: postgres image: postgres
ports: ports:
- 5432/tcp - 5432/tcp
@ -35,49 +35,60 @@ services:
# InvenTree web server services # InvenTree web server services
# Uses gunicorn as the web server # Uses gunicorn as the web server
inventree: inventree-server:
container_name: inventree container_name: inventree-server
image: inventree/inventree:latest image: inventree/inventree:latest
expose: expose:
- 8000 - 8000
depends_on: depends_on:
- db - inventree-db
volumes: volumes:
- data:/home/inventree/data - data:/home/inventree/data
- static:/home/inventree/static - static:/home/inventree/static
environment: environment:
# Default environment variables are configured to match the 'db' container # Default environment variables are configured to match the 'db' container
# Database permissions # Note: If you change the database image, these will need to be adjusted
# Note: INVENTREE_DB_HOST should match the container name of the database
- INVENTREE_DB_USER=pguser - INVENTREE_DB_USER=pguser
- INVENTREE_DB_PASSWORD=pgpassword - INVENTREE_DB_PASSWORD=pgpassword
- INVENTREE_DB_ENGINE=postgresql
- INVENTREE_DB_NAME=inventree
- INVENTREE_DB_HOST=inventree-db
- INVENTREE_DB_PORT=5432
restart: unless-stopped restart: unless-stopped
# Background worker process handles long-running or periodic tasks # Background worker process handles long-running or periodic tasks
worker: inventree-worker:
container_name: worker container_name: inventree-worker
image: inventree/inventree:latest image: inventree/inventree:latest
entrypoint: ./start_worker.sh entrypoint: ./start_worker.sh
depends_on: depends_on:
- db - inventree-db
- inventree - inventree-server
volumes: volumes:
- data:/home/inventree/data - data:/home/inventree/data
- static:/home/inventree/static - static:/home/inventree/static
environment: environment:
# Default environment variables are configured to match the 'inventree' container # Default environment variables are configured to match the 'db' container
# Note: If you change the database image, these will need to be adjusted
# Note: INVENTREE_DB_HOST should match the container name of the database
- INVENTREE_DB_USER=pguser - INVENTREE_DB_USER=pguser
- INVENTREE_DB_PASSWORD=pgpassword - INVENTREE_DB_PASSWORD=pgpassword
- INVENTREE_DB_ENGINE=postgresql
- INVENTREE_DB_NAME=inventree
- INVENTREE_DB_HOST=inventree-db
- INVENTREE_DB_PORT=5432
restart: unless-stopped restart: unless-stopped
# nginx acts as a reverse proxy # nginx acts as a reverse proxy
# static files are served by nginx # static files are served by nginx
# web requests are redirected to gunicorn # web requests are redirected to gunicorn
# NOTE: You will need to provide a working nginx.conf file! # NOTE: You will need to provide a working nginx.conf file!
proxy: inventree-proxy:
container_name: proxy container_name: inventree-proxy
image: nginx image: nginx
depends_on: depends_on:
- inventree - inventree-server
ports: ports:
# Change "1337" to the port that you want InvenTree web server to be available on # Change "1337" to the port that you want InvenTree web server to be available on
- 1337:80 - 1337:80
@ -99,6 +110,6 @@ volumes:
o: bind o: bind
# This directory specified where InvenTree data are stored "outside" the docker containers # This directory specified where InvenTree data are stored "outside" the docker containers
# Change this path to a local system path where you want InvenTree data stored # Change this path to a local system path where you want InvenTree data stored
device: /path/to/data device: c:\my-inventree-data
# Static files, shared between containers # Static files, shared between containers
static: static:

View File

@ -4,9 +4,9 @@ server {
listen 80; listen 80;
location / { location / {
# Change 'inventree' to the name of the inventree server container, # Change 'inventree-server' to the name of the inventree server container,
# and '8000' to the INVENTREE_WEB_PORT (if not default) # and '8000' to the INVENTREE_WEB_PORT (if not default)
proxy_pass http://inventree:8000; proxy_pass http://inventree-server:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host; proxy_set_header Host $host;