|
1 | 1 | ## Containers
|
2 | 2 |
|
3 |
| -This directory contains configuration files for containerization utilities. |
| 3 | +This directory contains configuration files for containers. Containers that depends on other containers require BuildKit to |
| 4 | +be enabled in order for syntax extensions to work correctly. |
4 | 5 |
|
5 |
| -Currently two Docker containers exist, `ci` defines how Dash's GitLab CI container is built and the `dev` builds on top of the `ci` to provide a containerized development environment that is as close as possible to CI for contributors! See also [Dash on Docker Hub](https://hub.docker.com/u/dashpay) i.e. for the [dashd container](https://hub.docker.com/r/dashpay/dashd). |
| 6 | +| Name | Depends On | Purpose | |
| 7 | +| --------- | -----------| -------------------------------------------------------------------------- | |
| 8 | +| `ci-slim` | None | Slimmed down container used to run functional tests and (some) linters | |
| 9 | +| `ci` | `ci-slim` | Full container used to (cross) compile | |
| 10 | +| `develop` | `ci` | Interactive environment to allow debugging in an environment that's 1:1 CI | |
| 11 | +| `deploy` | None | Packaging of builds for release on Docker Hub | |
| 12 | +| `guix` | None | Interactive environment for building (and packaging) with Guix | |
6 | 13 |
|
7 | 14 | ### Usage Guide
|
8 | 15 |
|
9 |
| -We utilise edrevo's [dockerfile-plus](https://github.com/edrevo/dockerfile-plus), a syntax extension that |
10 |
| -leverages Docker [BuildKit](https://docs.docker.com/develop/develop-images/build_enhancements/) to reduce |
| 16 | +We utilise edrevo's [devthefuture/dockerfile-x](https://codeberg.org/devthefuture/dockerfile-x), a syntax extension that |
| 17 | +leverages Docker [BuildKit](https://docs.docker.com/build/buildkit/) to reduce |
11 | 18 | the amount of repetitive code.
|
12 | 19 |
|
13 |
| -As BuildKit is opt-in within many currently supported versions of Docker (as of this writing), you need to |
14 |
| -set the following environment variables before continuing. While not needed after the initial `docker compose build` |
15 |
| -(barring updates to the `Dockerfile`), we recommend placing this in your `~/.bash_profile`/`~/.zshrc` or equivalent |
| 20 | +As BuildKit is opt-in within some versions of Docker, you may need to set the following environment variables before |
| 21 | +continuing. While not needed after the initial `docker compose build` (barring updates to the `Dockerfile`), we |
| 22 | +recommend placing this in your `~/.bash_profile`/`~/.zshrc` or equivalent |
16 | 23 |
|
17 | 24 | ```bash
|
18 | 25 | export DOCKER_BUILDKIT=1
|
19 | 26 | export COMPOSE_DOCKER_CLI_BUILD=1
|
20 | 27 | ```
|
21 | 28 |
|
22 |
| -After that, it's simply a matter of building and running your own development container. You can use extensions |
23 |
| -for your IDE like Visual Studio Code's [Remote Containers](https://code.visualstudio.com/docs/remote/containers) |
24 |
| -to run terminal commands from inside the terminal and build Dash Core. |
| 29 | +You can use extensions for your IDE like Visual Studio Code's [Remote Containers](https://code.visualstudio.com/docs/remote/containers) |
| 30 | +to run terminal commands from inside the terminal and work with Dash Core. |
25 | 31 |
|
26 | 32 | ```bash
|
27 | 33 | cd contrib/containers/develop
|
|
0 commit comments