From 52deb20e85d93e43013a2c0d8584b6b3a54faf15 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 22 Apr 2021 12:15:25 +1000 Subject: [PATCH 1/2] 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 --- docker/Dockerfile | 10 ---------- docker/docker-compose.yml | 41 +++++++++++++++++++++++++-------------- docker/nginx.conf | 4 ++-- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 9682665e04..ab4dbba6b5 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -29,16 +29,6 @@ ENV INVENTREE_SECRET_KEY_FILE="${INVENTREE_DATA_DIR}/secret_key.txt" # Default web server port is 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" \ org.label-schema.build-date=${DATE} \ org.label-schema.vendor="inventree" \ diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index e48b22d4b7..c5c98f7d36 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -19,8 +19,8 @@ services: # Use PostgreSQL as the database backend # Note: this can be changed to a different backend, # just make sure that you change the INVENTREE_DB_xxx vars below - db: - container_name: db + inventree-db: + container_name: inventree-db image: postgres ports: - 5432/tcp @@ -35,49 +35,60 @@ services: # InvenTree web server services # Uses gunicorn as the web server - inventree: - container_name: inventree + inventree-server: + container_name: inventree-server image: inventree/inventree:latest expose: - 8000 depends_on: - - db + - inventree-db volumes: - data:/home/inventree/data - static:/home/inventree/static environment: # 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_PASSWORD=pgpassword + - INVENTREE_DB_ENGINE=postgresql + - INVENTREE_DB_NAME=inventree + - INVENTREE_DB_HOST=inventree-db + - INVENTREE_DB_PORT=5432 restart: unless-stopped # Background worker process handles long-running or periodic tasks - worker: - container_name: worker + inventree-worker: + container_name: inventree-worker image: inventree/inventree:latest entrypoint: ./start_worker.sh depends_on: - - db - - inventree + - inventree-db + - inventree-server volumes: - data:/home/inventree/data - static:/home/inventree/static 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_PASSWORD=pgpassword + - INVENTREE_DB_ENGINE=postgresql + - INVENTREE_DB_NAME=inventree + - INVENTREE_DB_HOST=inventree-db + - INVENTREE_DB_PORT=5432 restart: unless-stopped # nginx acts as a reverse proxy # static files are served by nginx # web requests are redirected to gunicorn # NOTE: You will need to provide a working nginx.conf file! - proxy: - container_name: proxy + inventree-proxy: + container_name: inventree-proxy image: nginx depends_on: - - inventree + - inventree-server ports: # Change "1337" to the port that you want InvenTree web server to be available on - 1337:80 @@ -99,6 +110,6 @@ volumes: o: bind # 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 - device: /path/to/data + device: c:\my-inventree-data # Static files, shared between containers static: \ No newline at end of file diff --git a/docker/nginx.conf b/docker/nginx.conf index 7f275b4fa8..a9eff10fc5 100644 --- a/docker/nginx.conf +++ b/docker/nginx.conf @@ -4,9 +4,9 @@ server { listen 80; 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) - 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 Host $host; From 0c572486ba8a1c759bf27ce50bddec972b156f46 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 22 Apr 2021 12:49:11 +1000 Subject: [PATCH 2/2] Revert volume path --- docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index c5c98f7d36..9e77dd1181 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -110,6 +110,6 @@ volumes: o: bind # 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 - device: c:\my-inventree-data + device: /path/to/data # Static files, shared between containers static: \ No newline at end of file