|
|
Here is some basic information about our docker environment.
|
|
|
|
|
|
## Our Docker setup
|
|
|
There's only one compose file and it's in the root of the project. Each subsystem is defined in it as a service, except for the `lhw` service which exists for building the base image. All container management should be handled through docker compose (as well as image building).
|
|
|
|
|
|
There's one docker image based on the Dockerfile found in the root of the project which is used to get a homogeneous base for all other subsystem images. This image contains ROS, Oh My ZSH, and some other goodies. Every subsystem then has its own Dockerfile which you'll find in the specific subsystem's folder. These are used to install specific dependencies for the subsystem.
|
|
|
|
|
|
## Step by step
|
|
|
1. Clone the repository to your computer and navigate to the root folder of the project.
|
|
|
2. Build the image that is used as a base for all other images: `docker compose build lhw`.
|
|
|
3. Build a subsystem image `docker compose build <subsystem>`. You can build every image with just `docker compose build`, but they combine to ~45 GB currently and it'll take quite a while.
|
|
|
4. Enter a subsystem container with `docker compose run --rm <subsystem> zsh`, the `--rm` flag makes sure the container is removed after you're done with it.
|
|
|
|
|
|
### Windows notes
|
|
|
You'll need WSL, might need "Windows Terminal" and will need to go into Docker settings to enable the WSL 2 connection. |
|
|
\ No newline at end of file |