|
2 | 2 |
|
3 | 3 | Container images for [Posit Workbench](https://docs.posit.co/ide/server-pro). |
4 | 4 |
|
| 5 | +## Images |
| 6 | + |
| 7 | +| Image | Docker Hub | GitHub Container Registry | |
| 8 | +|:------|:-----------|:--------------------------| |
| 9 | +| [workbench](./workbench/) | [`docker.io/posit/workbench`](https://hub.docker.com/repository/docker/posit/workbench/tags) | [`ghcr.io/posit-dev/workbench`](https://github.com/posit-dev/images-workbench/pkgs/container/workbench) | |
| 10 | +| [workbench-session-init](./workbench-session-init/) | [`docker.io/posit/workbench-session-init`](https://hub.docker.com/repository/docker/posit/workbench-session-init/tags) | [`ghcr.io/posit-dev/workbench-session-init`](https://github.com/posit-dev/images-workbench/pkgs/container/workbench-session-init) | |
| 11 | + |
| 12 | +Additional Posit container images are published to [Docker Hub](https://hub.docker.com/u/posit) and [GitHub Container Registry](https://github.com/orgs/posit-dev/packages). |
| 13 | + |
5 | 14 | ## Getting Started |
6 | 15 |
|
| 16 | +You can interact with this repository in multiple ways: |
| 17 | + |
| 18 | +* [Build container images directly](#build) from the Containerfile. |
| 19 | +* [Use the `bakery` CLI](#using-bakery) to manage and build container images. |
| 20 | +* Extend the functionality by using the Minimal base image (see [examples](/posit-dev/images-examples)). |
| 21 | + |
| 22 | +## Build |
| 23 | + |
| 24 | +You can build OCI container images from the defitions in this repository using one of the following container build tools: |
| 25 | + |
| 26 | +* [buildah](https://github.com/containers/buildah/blob/main/install.md) |
| 27 | +* [docker buildx](https://github.com/docker/buildx#installing) |
| 28 | + |
| 29 | +The root of the bakery project is used as the build context for each Containerfile. |
| 30 | +Here, the `bakery.yaml` file, or project, is in the root of this repository. |
| 31 | + |
| 32 | +```shell |
| 33 | +PWB_VERSION="2025.05" |
| 34 | + |
| 35 | +# Build the standard Workbench image using docker |
| 36 | +docker buildx build \ |
| 37 | + --tag workbench:${PWB_VERSION} \ |
| 38 | + --file workbench/${PWB_VERSION}/Containerfile.ubuntu2204.std \ |
| 39 | + . |
| 40 | + |
| 41 | +# Build the minimal Workbench image using buildah |
| 42 | +buildah build \ |
| 43 | + --tag workbench:${PWB_VERSION} \ |
| 44 | + --file workbench/${PWB_VERSION}/Containerfile.ubuntu2204.min \ |
| 45 | + . |
| 46 | +``` |
| 47 | + |
| 48 | +## Using `bakery` |
| 49 | + |
| 50 | +The structure and contents of this reposity were created following the steps in [bakery usage](/posit-dev/images-shared/tree/main/posit-bakery#usage). |
| 51 | + |
7 | 52 | ### Prerequisites |
8 | 53 |
|
9 | | -### Installation |
| 54 | +Build prerequisites |
10 | 55 |
|
11 | | -## Usage |
| 56 | +* [python](https://docs.astral.sh/uv/guides/install-python/) |
| 57 | +* [pipx](https://pipx.pypa.io/stable/installation/) |
| 58 | +* [docker buildx bake](https://github.com/docker/buildx#installing) |
| 59 | +* [just](https://just.systems/man/en/prerequisites.html) |
| 60 | +* [gh](https://github.com/cli/cli#installation) (required while repositories are private) |
| 61 | +* `bakery` |
| 62 | + |
| 63 | + ```shell |
| 64 | + just install bakery |
| 65 | + ``` |
| 66 | + |
| 67 | +* `goss` and `dgoss` for running image validation tests |
| 68 | + |
| 69 | + ```shell |
| 70 | + just install-goss |
| 71 | + ``` |
| 72 | + |
| 73 | +### Build with `bakery` |
| 74 | + |
| 75 | +By default, bakery creates a ephemeral JSON [bakefile](https://docs.bakefile.org/en/latest/language.html) to render all containers in parallel. |
| 76 | + |
| 77 | +```shell |
| 78 | +bakery build |
| 79 | +``` |
| 80 | + |
| 81 | +You can view the bake plan using `bakery build --plan`. |
| 82 | + |
| 83 | +You can use CLI flags to build only a subset of images in the project. |
| 84 | + |
| 85 | +### Test images |
| 86 | + |
| 87 | +After building the container images, run the test suite for all images: |
| 88 | + |
| 89 | +```shell |
| 90 | +bakery run dgoss |
| 91 | +``` |
| 92 | + |
| 93 | +You can use CLI flags to limit the tests to run against a subset of images. |
12 | 94 |
|
13 | 95 | ## Issues |
14 | 96 |
|
15 | | -If you encounter any issues or have any questions, please [open an issue](https://github.com/posit-dev/images-workbench/issues). We appreciate your feedback. |
| 97 | +If you encounter any issues or have any questions, please [open an issue](/posit-dev/images-workbench/issues). We appreciate your feedback. |
16 | 98 |
|
17 | 99 | ## Code of Conduct |
18 | 100 |
|
19 | 101 | We expect all contributors to adhere to the project's [Code of Conduct](CODE_OF_CONDUCT.md) and create a positive and inclusive community. |
| 102 | +
|
| 103 | +## License |
| 104 | +
|
| 105 | +Posit Container Images and associated tooling are licensed under the [MIT License](LICENSE.md) |
0 commit comments