-
Notifications
You must be signed in to change notification settings - Fork 2
Everything Docker
Antoine Phan edited this page Aug 20, 2025
·
5 revisions
UMIL has 4 main services:
| service | container name | functionalities |
|---|---|---|
app |
vim-app | Django app that serves as both frontend and backend. In dev mode, vite runs at port 5173 to serve TypeScript files, and sass that hot-reload SASS files |
solr |
vim-solr | UMIL's search engine that provides full-text search, faceted search, indexing, etc. |
db |
vim-db | PostgreSQL database |
nginx |
vim-nginx | Reverse proxy for vim-app and serve static files |
- All services in UMIL are internally connected.
-
nginxis the only service with port 8000 exposed to the host machine, which connects to the container's port 80. (0.0.0.0:8000->80/tcp) - Exception for
devmode: port 5173 is exposed forapp, allowing external communication between its two services:vite(port 5173) anddjango. These two internal services works viadjango-viteunder the hood.
- Image build order for
MODE=dev: builder -> dev - Image build order for
MODE=prod: builder, prod-frontend -> prod
- Install
poetryusingpip - Use
poetryto insstall dependencies, withoutdevanddebug - Copy files web-app and frontend files to the container
- Set environment variable
PYTHONPATHandPATH
- Install
debugdependencies that was missing from the builder stage - Serve simultaneously the frontend (
vite devserver, port 5173) and Django development server
- Build frontend files with vite and sass
- Move the frontend build to Django assets
- Serve the app with Gunicorn