mirror of
https://github.com/kodxana/madiator-docker-runpod.git
synced 2024-11-22 19:00:13 +01:00
62 lines
3 KiB
Text
62 lines
3 KiB
Text
|
For local development of this image, you can run the image with 3 options:
|
||
|
- Docker Compose (production or Development)
|
||
|
- VS Code (F5 Debugging)
|
||
|
|
||
|
|
||
|
PREPARE ENV variables:
|
||
|
|
||
|
Both docker-compose YML files and the VS-Code "tasks.json" configuration file
|
||
|
pass a ".env" file into the container, to set User-specific ENV variables.
|
||
|
Edit the supplied "env.txt" template file with your values, and then rename it to ".env".
|
||
|
The ".env" file is in the ".gitignore" file to avoid unwanted secret-sharing with GitHub!
|
||
|
|
||
|
|
||
|
To build and run the image with DOCKER COMPOSE:
|
||
|
|
||
|
To run in "production":
|
||
|
Use the command "docker compose up":
|
||
|
That runs the container without debugger, but enables localhost and a workspace bind.
|
||
|
It uses the default "docker-compose.yml", which should be ADJUSTED to your workspace bind location.
|
||
|
This YML file binds all application ports (7222, 8181, 7777) all browsable from localhost,
|
||
|
and your SSH public key will be configured and be usable!
|
||
|
It uses 1 docker bind mount:
|
||
|
- "/workspace" can be bound to any location on your local machine (ADJUST the location in the YML file)
|
||
|
This option uses the default entry CMD "start.sh" as defined in the "Dockerfile".
|
||
|
|
||
|
To run in "development":
|
||
|
Use the command "docker compose -f docker-compose.debug.yml"
|
||
|
That runs the container with a python debugger (debugpy) attached, enables localhost browsing,
|
||
|
and binds the workspace from a local folder of your choice.
|
||
|
It uses 2 docker bind mounts:
|
||
|
- "/app" to mirror your app into the container (supports hot-reload) and debugging against your source files
|
||
|
- "/workspace" can be bound to any location on your local machine (ADJUST the location in the YML file)
|
||
|
|
||
|
This second debug YML configuration is configured with the same settings that are used for
|
||
|
VS-Code debugging with the VS-Code Docker Extension with Run -> Debug (F5).
|
||
|
BUT YOU NEED TO ATTACH THE DEBUGGER YOURSELF
|
||
|
Use the debugpy.wait_for_client() function to block program execution until the client is attached.
|
||
|
See more at https://github.com/microsoft/debugpy
|
||
|
|
||
|
|
||
|
It is much easier to build and run the image with VS-CODE (Run -> Debug F5):
|
||
|
|
||
|
The VS-Code Docker Extension uses 2 files in the hidden folder ".vscode":
|
||
|
- launch.json
|
||
|
- tasks.json
|
||
|
|
||
|
The "tasks.json" file is the file with most configuration settings
|
||
|
which basically mirrors to the "docker-compose.debug.yml"
|
||
|
|
||
|
ALL these 5 mention files (env.txt, docker-compose.yml, docker-compose.debug.yml,
|
||
|
launch.json, tasks.json, en.txt) are heavily commented.
|
||
|
|
||
|
|
||
|
NOTES
|
||
|
Both debugging options with "docker-compose.debug.yml", or VS-Code Docker Extenstions "tasks.json"
|
||
|
replace the CMD entry point of the Dockerfile to "python3", instead of "start.sh" !!!
|
||
|
|
||
|
That means that the apps on port 8181 (File-Browser) and 7777 (VSCode-Server) are
|
||
|
NOT available during debugging, neither will your SSH public key be configured and is not usable,
|
||
|
as these configuration things happen in "start.sh", but they are not needed during development.
|
||
|
|
||
|
Only the NGINX server and the Flask module will be started during debugging.
|