MycroForge.CLI | ||
MycroForge.Parsing | ||
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
MycroForge.sln | ||
README.Docker.md |
Building and running your application
When you're ready, start your application by running:
docker compose up --build
.
Your application will be available at http://localhost:8080.
Deploying your application to the cloud
First, build your image, e.g.: docker build -t myapp .
.
If your cloud uses a different CPU architecture than your development
machine (e.g., you are on a Mac M1 and your cloud provider is amd64),
you'll want to build the image for that platform, e.g.:
docker build --platform=linux/amd64 -t myapp .
.
Then, push it to your registry, e.g. docker push myregistry.com/myapp
.
Consult Docker's getting started docs for more detail on building and pushing.
References
- Docker's .NET guide
- The dotnet-docker repository has many relevant samples and docs.
Dependencies
bash (/usr/bin/bash)
Python 3.10.2 (/usr/bin/python3)
- python3-pip
- python3-venv
pkg-config (sudo apt update && sudo apt install pkg-config)
Notes
Try Running NuGet restore when ANTLR doesn't generate Lexer or Parser
TODO
- Make entrypoint, i.e. main.py, customizable or fixed?
- Figure out why BashException cannot be caught, can it be due to the differences in scoping?
Because the
Bash
class is static and the services callingBash.ExecuteAsync
are in the container. Maybe this in combination with the async nature of the whole thing? - Make it so that
Bash.ExecuteAsync
can run "directly" in the calling terminal also. - This will improve the usability of the "m4g run" command.