Skip to content

Add instructions on how to use the dev container image from GHCR #1581

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 49 additions & 14 deletions getting-started/setup-building.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1188,19 +1188,57 @@ select the option ``Open in VS Code``. You will still be working on the remote
codespace instance, thus using the remote instance's compute power. The compute
power may be a much higher spec than your local machine which can be helpful.

.. c_codespaces_end

.. _devcontainer-directly:

Building the container locally
------------------------------
Using the dev container directly
================================

If you want more control over the environment, or to work offline,
you can build the container locally.
you can use the same container used in
:ref:`GitHub Codespaces <using-codespaces>` directly.
This is meant for users who have (or want to get) some experience
with containers.
The following instructions are a starting point for
your own customizations.
They assume a Unix-like environment, and Docker or Podman installed.
These instructions assume a Unix-like environment with
`Docker <https://www.docker.com/>`__ or `Podman <https://podman.io/>`__
installed.

.. _devcontainer-image:

Using the pre-built container image
-----------------------------------

`Dev container images <https://github.com/python/cpython-devcontainers/pkgs/container/devcontainer>`__
are available from the
`GitHub Container Registry (GHCR) account for the Python org <https://github.com/orgs/python/packages>`__ .

You can download the latest version of the container image via:

.. code-block:: bash

docker pull ghcr.io/python/devcontainer:latest

(Substitute ``podman`` for ``docker`` if you use Podman.)

In a clone of the `cpython-devcontainers repo <https://github.com/python/cpython-devcontainers>`_,
To run the container and launch a Bash shell, run one of the following commands
in a clone of the CPython repository.

.. code-block:: bash

docker run -it --rm --volume $PWD:/workspace --workdir /workspace ghcr.io/python/devcontainer:latest

.. code-block:: bash

podman run -it --rm --volume $PWD:/workspace:Z --workdir /workspace ghcr.io/python/devcontainer:latest

.. _devcontainer-build:

Building yourself
-----------------

If you prefer, you can build the container image yourself. In a clone of the
`cpython-devcontainers repo <https://github.com/python/cpython-devcontainers>`_,
build the container and name it ``cpython-dev``:

.. code-block:: bash
Expand All @@ -1213,8 +1251,8 @@ The same command will update any existing ``cpython-dev`` container.
Run it again from time to time -- especially if the container stops
working for you.

To run the container, run one of the following commands in a clone of the
CPython repository.
To run the container and launch a Bash shell, run one of the following commands
in a clone of the CPython repository.

.. code-block:: bash

Expand All @@ -1224,11 +1262,8 @@ CPython repository.

podman run -it --rm --volume $PWD:/workspace:Z --workdir /workspace cpython-dev

Note that the container has read/write access to the working directory.
You may want to use a separate clone of CPython, or run ``make clean``
to remove caches and build output generated for your host OS.

.. c_codespaces_end
The same caveats outlined above when running from a container image from GHCR
also apply here.



Expand Down
Loading