From 5a260ffbd9272e88778bf05a3e04de400867995d Mon Sep 17 00:00:00 2001 From: Max Allan Date: Mon, 15 Apr 2024 17:43:11 +0100 Subject: [PATCH] First draft of devcontainers Signed-off-by: Max Allan --- .../identity-examples/bitbucket-identity.md | 2 +- .../getting-started/devcontainers/index.md | 183 ++++++++++++++++++ .../devcontainers/vscode-1.png | Bin 0 -> 18713 bytes .../devcontainers/vscode-2.png | Bin 0 -> 21480 bytes .../devcontainers/vscode-3.png | Bin 0 -> 27117 bytes .../recommended-practices/cve-risk.md | 2 +- 6 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 content/chainguard/chainguard-images/getting-started/devcontainers/index.md create mode 100644 content/chainguard/chainguard-images/getting-started/devcontainers/vscode-1.png create mode 100644 content/chainguard/chainguard-images/getting-started/devcontainers/vscode-2.png create mode 100644 content/chainguard/chainguard-images/getting-started/devcontainers/vscode-3.png diff --git a/content/chainguard/administration/iam-organizations/identity-examples/bitbucket-identity.md b/content/chainguard/administration/iam-organizations/identity-examples/bitbucket-identity.md index 403a7a74f6..c8933192f8 100644 --- a/content/chainguard/administration/iam-organizations/identity-examples/bitbucket-identity.md +++ b/content/chainguard/administration/iam-organizations/identity-examples/bitbucket-identity.md @@ -14,7 +14,7 @@ images: [] weight: 020 --- -Chaingaurd's [*assumable identities*](/chainguard/chainguard-enforce/iam-groups/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. +Chainguard's [*assumable identities*](/chainguard/chainguard-enforce/iam-groups/assumable-ids/) are identities that can be assumed by external applications or workflows in order to perform certain tasks that would otherwise have to be done by a human. This procedural tutorial outlines how to create an identity using Terraform, and then how to update a Bitbucket pipeline so that it can assume the identity and interact with Chainguard resources. diff --git a/content/chainguard/chainguard-images/getting-started/devcontainers/index.md b/content/chainguard/chainguard-images/getting-started/devcontainers/index.md new file mode 100644 index 0000000000..312a2d1438 --- /dev/null +++ b/content/chainguard/chainguard-images/getting-started/devcontainers/index.md @@ -0,0 +1,183 @@ +--- +title: "Getting Started with the Chainguard Images as Dev Containers" +type: "article" +linktitle: "Dev Containers" +aliases: +- /chainguard/chainguard-images/getting-started/devcontainers +description: "Tutorial on using Chainguard Images as Dev Containers" +date: 2024-04-15T11:07:52+02:00 +lastmod: 2024-04-15T11:07:52+02:00 +tags: ["Chainguard Images", "Products"] +draft: false +images: [] +menu: + docs: + parent: "getting-started" +weight: 610 +toc: true +--- +# Dev Containers with Chainguard Images +The images based on Wolfi and maintained by Chainguard provide distroless images that can be used as Dev Containers with a few changes. + +Chainguard offers minimal runtime images designed for running production workloads, and development images that contain a shell and some development tooling. But both development and production images are slimmed down and updated regularly to be CVE free. + +Whilst it is obvious why production images should be secure, you may be wondering "why do I worry if my dev env gets hacked, there is no data in it?". The answer is simple. Your code goes into the production environment. If you have been hacked during development, then perhaps the hackers code goes into production as well. This is a "supply chain" attack. + +Hopefully you would notice a chunk of rogue code being added to your source. What you might not notice is a change to a dependency, that looks like an update, but is actually malware using a typo-squat. For example updating `color:1.1` to `co1or:1.2`. Especially in a huge list of dependency updates that you maybe don't even check. As long as your app works! + +We'll go through the changes you need to use a Chainguard development image as a Dev Container in VS Code. + +If you would like to build and use a Dev Container you will need a compatible Integrated Development Environment (IDE) or other tool. Here is list of [supported tools](https://containers.dev/supporting). + +To keep it simple, this guide is written for [Visual Studio Code (VS Code)](https://code.visualstudio.com/) + +You will also need a Docker server to connect to. Usually a local install of Docker Desktop, but full instructions can be found [here](https://code.visualstudio.com/docs/devcontainers/containers) + + +{{< details "What is distroless" >}} +{{< blurb/distroless >}} +{{< /details >}} + +{{< details "What is Wolfi" >}} +{{< blurb/wolfi >}} +{{< /details >}} + +{{< details "Chainguard Images" >}} +{{< blurb/images >}} +{{< /details >}} + +## Simple setup + +You can get see a simple example if you take the content of the `chainguard-go-devcontainer` directory in our demo repository and push it to the root of an empty repository. + +For example: +``` sh +git clone https://github.com/chainguard-dev/edu-images-demos.git +cd edu-images-demos/chainguard-go-devcontainer +git init . +git add * .??* +git commit -am "Initial Commit" +git remote add origin https://github.com//empty.git +git push -fu origin main +``` + +If you open VS Code on this directory now, you will be prompted to open the project in a Dev Container. + +![VS Code window showing the prompt to reopen project in Dev Container](vscode-1.png) + +If you go ahead and reopen in a Dev Container it may take a minute or so to build the first time you use it. Open a terminal and you can run the sample project, even if you don't have Go installed on your local machine. + +![VS Code window with a Go program in the editor being run in the Terminal](vscode-2.png) + +If you run a webserver in your Dev Container you will be asked if you want to open the port in a local browser. Exactly as if you were running in a local container. + +![VS Code running helloserver and prompting the user to Open in Browser](vscode-3.png) + + +## Building a Dev Container in other languages + +If you want to develop in languages other than Go, you'll need to use a different base image. To do that, you need some understanding of what the Dev Container does. + +To understand what we're doing, you'll need a basic knowledge of `Dockerfile`, Docker builds, JSON, and probably will need to know how your language installs libraries or packages. + +NB There are a couple of different ways to set things up, this particular setup is not required as long as the various requirements are met. The example project uses a `Dockerfile` and `devcontainer.json` in a `.devcontainer` directory. This has the advantage of keeping the "real" code separate from the Dev Container config. + +Lets walk through an example for Python + +### Create the skeleton structure +Assuming you're starting from a project with no Dev Container you'll want to create the files/folders you need. +``` +mkdir .devcontainer +touch .devcontainer/{Dockerfile,devcontainer.json} +``` + +### Create Dev Container config file +Add this to the `devcontainer.json` config file: +``` json +{ + "name": "my-devcontainer", + "build": { + "dockerfile": "Dockerfile", + "args": {} + }, + "customizations": { + "vscode": { + "extensions": [ "ms-python.python" ] + } + }, + "postCreateCommand": "pip install -r requirements.txt", + "remoteUser": "nonroot" +} +``` + +Because this is for a Python app, we are installing the VS Code python extension and using `pip` to install project dependencies. + +The postCreateCommand runs in the root of your project after it has been cloned into the Container. If you don't have a `requirements.txt` file with your project the command will fail and you will need to remove the command to use the Dev Container. + +### Find a base image and customize the Dockerfile +Chainguard offer a wide range of images for different languages and ecosystems. To search, use [the images directory](https://images.chainguard.dev/directory?category=languages). + +For this example, we need Python. Many Chainguard images are available at Docker Hub now meaning we can set the `FROM` line in the `Dockerfile` to + +```dockerfile +FROM chainguard/python:latest-dev +``` +It is important to use the latest-dev version of the image to get tools like apk (the package manager) and a shell. + +Depending on the image, you may need a line: +```dockerfile +USER root +``` + +So that the next commands run as root instead of the unprivileged user. You can check by running your image locally and using the id command +``` shell +docker run -it --entrypoint id chainguard/python:latest-dev +uid=65532(nonroot) gid=65532(nonroot) groups=65532(nonroot) +docker run -it --entrypoint id chainguard/go:latest-dev +uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video) +``` + +Python, you need `USER root`. Go, you are already root. + +Next, you need to install the posix utils from which Dev Containers uses the `getent` command. And then update the library links with `ldconfig`. +``` dockerfile +RUN apk update && apk add posix-libc-utils && ldconfig +``` + +The `ldconfig` and `getent` are needed to allow the container start scripts from VS Code to run. They may already be run in some base images. + +If your language needs any other packages installing as `root` now is the time to add them. + +Otherwise, continue the Dockerfile as nonroot and install any packages the language or VSCode extension might need. The Python plugin uses `pylance` and `debugpy`. (You don't have to install them now, the plugin can install them later.) + +``` dockerfile +USER nonroot +RUN pip install pylance debugpy +``` + +NB Do NOT install packages your project needs here. The image build happens before the source code is cloned. So you'd need to somehow duplicate listing your dependencies into this file as +well as wherever they are already listed. Instead, use the `postCreateCommand`. + +If you save those 2 files into an existing python repository you should then be able to reopen in a Dev Container. + +### Customising the image +You can add more customisation to the `Dockerfile`. But sometimes you may find you need to run commands as root. The stripped down, distroless, images do not include sudo and there is no root password to use. + +To add sudo, you can add this to the `Dockerfile` in the section running as `root` +``` dockerfile +RUN apk add sudo-rs shadow && echo "nonroot ALL = (ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers && echo y | pwck -q || true +``` + +## GitHub Codespaces + +CodeSpaces support Dev Containers. But at present they only work when the config is stored at the root directory (This is why our demo repo can't be loaded with Codespaces). + +## SSH/GPG keys +The IDE should pass your keys through to the Dev Container using ssh-agent and gpg-agent. However you may need to install gpg/ssh tools inside the container. + +See the VS Code page on [advanced usage](https://code.visualstudio.com/remote/advancedcontainers/sharing-git-credentials) for more information. + +# Conclusion +You should now have a development environment that does not need packages installing on your local machine and that will run the same for anyone editing your project. + +You may want to add things like linting rules or other components to your Dev Container config. The [VS Code website](https://code.visualstudio.com/docs/devcontainers/containers) has a lot more information about Dev Containers in general. \ No newline at end of file diff --git a/content/chainguard/chainguard-images/getting-started/devcontainers/vscode-1.png b/content/chainguard/chainguard-images/getting-started/devcontainers/vscode-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e4057f3b0636a2bceac6b0d193d62d055c4d0a8e GIT binary patch literal 18713 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 N002ovPDHLkV1fp`37!A| literal 0 HcmV?d00001 diff --git a/content/chainguard/chainguard-images/getting-started/devcontainers/vscode-2.png b/content/chainguard/chainguard-images/getting-started/devcontainers/vscode-2.png new file mode 100644 index 0000000000000000000000000000000000000000..03934b464f1ab83c5428c13ecfb53aa9f9bc0a83 GIT binary patch literal 21480 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 Hu0mjfHRx{g literal 0 HcmV?d00001 diff --git a/content/chainguard/chainguard-images/getting-started/devcontainers/vscode-3.png b/content/chainguard/chainguard-images/getting-started/devcontainers/vscode-3.png new file mode 100644 index 0000000000000000000000000000000000000000..0045c8003c50426369055376291f8b6b11f184eb GIT binary patch literal 27117 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