mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Refactor development docker-compose setup
This commit is contained in:
		
							
								
								
									
										106
									
								
								docker/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								docker/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,106 @@ | ||||
| version: "3.8" | ||||
|  | ||||
| # Docker compose recipe for InvenTree development server | ||||
| # - Runs PostgreSQL as the database backend | ||||
| # - Uses built-in django webserver | ||||
| # - Runs the InvenTree background worker process | ||||
| # - Serves media and static content directly from Django webserver | ||||
|  | ||||
| # IMPORANT NOTE: | ||||
| # The InvenTree development image does not clone source code from git. | ||||
| # Instead, it runs from source code on your local machine. | ||||
| # The django server will auto-detect any code changes and reload the server. | ||||
|  | ||||
| # If you have cloned the InvenTree git repo, and not made any changes to this file, | ||||
| # then the default setup in this file should work straight out of the box, without modification | ||||
|  | ||||
| services: | ||||
|  | ||||
|     # Database service | ||||
|     # Use PostgreSQL as the database backend | ||||
|     # Note: This can be changed to a different backend if required | ||||
|     inventree-dev-db: | ||||
|         container_name: inventree-dev-db | ||||
|         image: postgres:13 | ||||
|         ports: | ||||
|             - ${INVENTREE_DB_PORT:-5432}/tcp | ||||
|         environment: | ||||
|             - PGDATA=/var/lib/postgresql/data/dev/pgdb | ||||
|             - POSTGRES_USER=${INVENTREE_DB_USER:?You must provide the 'INVENTREE_DB_USER' variable in the .env file} | ||||
|             - POSTGRES_PASSWORD=${INVENTREE_DB_PASSWORD:?You must provide the 'INVENTREE_DB_PASSWORD' variable in the .env file} | ||||
|             - POSTGRES_DB=${INVENTREE_DB_NAME:?You must provide the 'INVENTREE_DB_NAME' variable in the .env file} | ||||
|         volumes: | ||||
|           # Map 'data' volume such that postgres database is stored externally | ||||
|           - inventree_src:/var/lib/postgresql/data | ||||
|         restart: unless-stopped | ||||
|  | ||||
|     # InvenTree web server services | ||||
|     # Uses gunicorn as the web server | ||||
|     inventree-dev-server: | ||||
|         container_name: inventree-dev-server | ||||
|         depends_on: | ||||
|           - inventree-dev-db | ||||
|         build: | ||||
|             context: . | ||||
|             target: dev | ||||
|         ports: | ||||
|             # Expose web server on port 8000 | ||||
|             - 8000:8000 | ||||
|         # Note: If using the inventree-dev-proxy container (see below), | ||||
|         # comment out the "ports" directive (above) and uncomment the "expose" directive | ||||
|         #expose: | ||||
|         #    - 8000 | ||||
|         volumes: | ||||
|             # Ensure you specify the location of the 'src' directory at the end of this file | ||||
|             - inventree_src:/home/inventree | ||||
|         env_file: | ||||
|             # Environment variables required for the dev server are configured in dev-config.env | ||||
|             - dev-config.env | ||||
|         restart: unless-stopped | ||||
|  | ||||
|     # Background worker process handles long-running or periodic tasks | ||||
|     inventree-dev-worker: | ||||
|         container_name: inventree-dev-worker | ||||
|         build: | ||||
|             context: . | ||||
|             target: dev | ||||
|         command: invoke worker | ||||
|         depends_on: | ||||
|             - inventree-dev-server | ||||
|         volumes: | ||||
|             # Ensure you specify the location of the 'src' directory at the end of this file | ||||
|             - inventree_src:/home/inventree | ||||
|         env_file: | ||||
|             # Environment variables required for the dev server are configured in dev-config.env | ||||
|             - dev-config.env | ||||
|         restart: unless-stopped | ||||
|  | ||||
|     ### Optional: Serve static and media files using nginx | ||||
|     ### Uncomment the following lines to enable nginx proxy for testing | ||||
|     ### Note: If enabling the proxy, change "ports" to "expose" for the inventree-dev-server container (above) | ||||
|     #inventree-dev-proxy: | ||||
|     #    container_name: inventree-dev-proxy | ||||
|     #    image: nginx:stable | ||||
|     #    depends_on: | ||||
|     #        - inventree-dev-server | ||||
|     #    ports: | ||||
|     #        # Change "8000" to the port that you want InvenTree web server to be available on | ||||
|     #        - 8000:80 | ||||
|     #    volumes: | ||||
|     #        # Provide ./nginx.dev.conf file to the container | ||||
|     #        # Refer to the provided example file as a starting point | ||||
|     #        - ./nginx.dev.conf:/etc/nginx/conf.d/default.conf:ro | ||||
|     #        # nginx proxy needs access to static and media files | ||||
|     #        - inventree_src:/var/www | ||||
|     #    restart: unless-stopped | ||||
|  | ||||
| volumes: | ||||
|     # Persistent data, stored external to the container(s) | ||||
|     inventree_src: | ||||
|         driver: local | ||||
|         driver_opts: | ||||
|             type: none | ||||
|             o: bind | ||||
|             # This directory specified where InvenTree source code is stored "outside" the docker containers | ||||
|             # By default, this directory is one level above the "docker" directory | ||||
|             device: ${INVENTREE_EXT_VOLUME:-../} | ||||
		Reference in New Issue
	
	Block a user