-
Notifications
You must be signed in to change notification settings - Fork 233
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: build-images as earthly. (#6194)
* Converts our build images from Dockerfile to Earthfile. This means we now need to reference the registry image from the devcontainer. Also now means you need earthly to build the build images. * Enables docker-in-docker within our devcontainer. * ARM ci now uses earthly wrapper to pick up the env vars. * Running devcontainer more than once outside vscode will reuse existing container. * If on master we enable the pushing of inline cache.
- Loading branch information
1 parent
bd2ccf0
commit 67fedf1
Showing
15 changed files
with
1,870 additions
and
458 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,10 @@ | ||
{ | ||
"name": "Development", | ||
"build": { | ||
"dockerfile": "../../build-images/Dockerfile", | ||
"context": "../../build-images", | ||
"target": "devbox" | ||
"image": "aztecprotocol/devbox:1.0", | ||
"features": { | ||
// Use custom fork with noble added to list of supported distros. | ||
"./docker-in-docker": {} | ||
}, | ||
"containerUser": "aztec-dev", | ||
// ubuntu:noble is currently not supported. | ||
// Can possibly workaround cherry-picking from here: | ||
// https://github.com/devcontainers/features/blob/main/src/docker-in-docker/install.sh | ||
// | ||
// "image": "aztecprotocol/codespace", | ||
// "features": { | ||
// "docker-in-docker": { | ||
// "version": "latest", | ||
// "moby": true, | ||
// "dockerDashComposeVersion": "v1" | ||
// } | ||
// }, | ||
"mounts": ["source=devbox-home,target=/home/aztec-dev,type=volume"] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
## Limitations | ||
|
||
This docker-in-docker Dev Container Feature is roughly based on the [official docker-in-docker wrapper script](https://github.com/moby/moby/blob/master/hack/dind) that is part of the [Moby project](https://mobyproject.org/). With this in mind: | ||
* As the name implies, the Feature is expected to work when the host is running Docker (or the OSS Moby container engine it is built on). It may be possible to get running in other container engines, but it has not been tested with them. | ||
* The host and the container must be running on the same chip architecture. You will not be able to use it with an emulated x86 image with Docker Desktop on an Apple Silicon Mac, like in this example: | ||
``` | ||
FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/typescript-node:16 | ||
``` | ||
See [Issue #219](https://github.com/devcontainers/features/issues/219) for more details. | ||
|
||
|
||
## OS Support | ||
|
||
This Feature should work on recent versions of Debian/Ubuntu-based distributions with the `apt` package manager installed. | ||
|
||
`bash` is required to execute the `install.sh` script. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# Docker (Docker-in-Docker) (docker-in-docker) | ||
|
||
**FORKED HERE TO SUPPORT NOBLE** | ||
|
||
Create child containers _inside_ a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs. | ||
|
||
## Example Usage | ||
|
||
```json | ||
"features": { | ||
"ghcr.io/devcontainers/features/docker-in-docker:2": {} | ||
} | ||
``` | ||
|
||
## Options | ||
|
||
| Options Id | Description | Type | Default Value | | ||
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | ------------- | | ||
| version | Select or enter a Docker/Moby Engine version. (Availability can vary by OS version.) | string | latest | | ||
| moby | Install OSS Moby build instead of Docker CE | boolean | true | | ||
| mobyBuildxVersion | Install a specific version of moby-buildx when using Moby | string | latest | | ||
| dockerDashComposeVersion | Default version of Docker Compose (latest, v2 or none) | string | latest | | ||
| azureDnsAutoDetection | Allow automatically setting the dockerd DNS server when the installation script detects it is running in Azure | boolean | true | | ||
| dockerDefaultAddressPool | Define default address pools for Docker networks. e.g. base=192.168.0.0/16,size=24 | string | - | | ||
| installDockerBuildx | Install Docker Buildx | boolean | true | | ||
| installDockerComposeSwitch | Install Compose Switch (provided docker compose is available) which is a replacement to the Compose V1 docker-compose (python) executable. It translates the command line into Compose V2 docker compose then runs the latter. | boolean | true | | ||
|
||
## Customizations | ||
|
||
### VS Code Extensions | ||
|
||
- `ms-azuretools.vscode-docker` | ||
|
||
## Limitations | ||
|
||
This docker-in-docker Dev Container Feature is roughly based on the [official docker-in-docker wrapper script](https://github.com/moby/moby/blob/master/hack/dind) that is part of the [Moby project](https://mobyproject.org/). With this in mind: | ||
|
||
- As the name implies, the Feature is expected to work when the host is running Docker (or the OSS Moby container engine it is built on). It may be possible to get running in other container engines, but it has not been tested with them. | ||
- The host and the container must be running on the same chip architecture. You will not be able to use it with an emulated x86 image with Docker Desktop on an Apple Silicon Mac, like in this example: | ||
``` | ||
FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/typescript-node:16 | ||
``` | ||
See [Issue #219](https://github.com/devcontainers/features/issues/219) for more details. | ||
|
||
## OS Support | ||
|
||
This Feature should work on recent versions of Debian/Ubuntu-based distributions with the `apt` package manager installed. | ||
|
||
`bash` is required to execute the `install.sh` script. | ||
|
||
--- | ||
|
||
_Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/devcontainers/features/blob/main/src/docker-in-docker/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ |
70 changes: 70 additions & 0 deletions
70
.devcontainer/dev/docker-in-docker/devcontainer-feature.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
{ | ||
"id": "docker-in-docker", | ||
"version": "2.10.2", | ||
"name": "Docker (Docker-in-Docker)", | ||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-in-docker", | ||
"description": "Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.", | ||
"options": { | ||
"version": { | ||
"type": "string", | ||
"proposals": ["latest", "none", "20.10"], | ||
"default": "latest", | ||
"description": "Select or enter a Docker/Moby Engine version. (Availability can vary by OS version.)" | ||
}, | ||
"moby": { | ||
"type": "boolean", | ||
"default": true, | ||
"description": "Install OSS Moby build instead of Docker CE" | ||
}, | ||
"mobyBuildxVersion": { | ||
"type": "string", | ||
"default": "latest", | ||
"description": "Install a specific version of moby-buildx when using Moby" | ||
}, | ||
"dockerDashComposeVersion": { | ||
"type": "string", | ||
"enum": ["none", "latest", "v2"], | ||
"default": "latest", | ||
"description": "Default version of Docker Compose (latest, v2 or none)" | ||
}, | ||
"azureDnsAutoDetection": { | ||
"type": "boolean", | ||
"default": true, | ||
"description": "Allow automatically setting the dockerd DNS server when the installation script detects it is running in Azure" | ||
}, | ||
"dockerDefaultAddressPool": { | ||
"type": "string", | ||
"default": "", | ||
"proposals": [], | ||
"description": "Define default address pools for Docker networks. e.g. base=192.168.0.0/16,size=24" | ||
}, | ||
"installDockerBuildx": { | ||
"type": "boolean", | ||
"default": true, | ||
"description": "Install Docker Buildx" | ||
}, | ||
"installDockerComposeSwitch": { | ||
"type": "boolean", | ||
"default": true, | ||
"description": "Install Compose Switch (provided docker compose is available) which is a replacement to the Compose V1 docker-compose (python) executable. It translates the command line into Compose V2 docker compose then runs the latter." | ||
} | ||
}, | ||
"entrypoint": "/usr/local/share/docker-init.sh", | ||
"privileged": true, | ||
"containerEnv": { | ||
"DOCKER_BUILDKIT": "1" | ||
}, | ||
"customizations": { | ||
"vscode": { | ||
"extensions": ["ms-azuretools.vscode-docker"] | ||
} | ||
}, | ||
"mounts": [ | ||
{ | ||
"source": "dind-var-lib-docker-${devcontainerId}", | ||
"target": "/var/lib/docker", | ||
"type": "volume" | ||
} | ||
], | ||
"installsAfter": ["ghcr.io/devcontainers/features/common-utils"] | ||
} |
Oops, something went wrong.