Skip to content
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

Update INSTALL_DOCKER for GitHub Container Registry change #4461

Merged
merged 1 commit into from
Oct 10, 2023
Merged
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
30 changes: 22 additions & 8 deletions INSTALL_DOCKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,60 +14,74 @@ If you prefer to use the Alpine images, you can use the following tags:

The docker images also include common Pony tools like [ponyup](https://github.com/ponylang/ponyup), [corral](https://github.com/ponylang/corral), and [changelog-tool](https://github.com/ponylang/changelog-tool).

## Where to find images

Images from 0.56.1 and later are available from GitHub Container Registry. Earlier images are hosted on DockerHub. To use an image from DockerHub, change the command below from the pattern:

```bash
docker pull docker://ghcr.io/ponylang/ponyc:TAG
```

to

```bash
docker pull ponylang/ponyc:TAG
```

## Using Pony from Docker

You'll need to install Docker using [the instructions here](https://docs.docker.com/engine/installation/). Then you can pull a pony docker image using the following command (where TAG is the tag you want to use)

```bash
docker pull ponylang/ponyc:TAG
docker pull docker://ghcr.io/ponylang/ponyc:TAG
```

Then you'll be able to run `ponyc` to compile a Pony program in a given directory, running a command like this:

```bash
docker run -v /path/to/my-code:/src/main ponylang/ponyc:TAG
docker run -v /path/to/my-code:/src/main docker://ghcr.io/ponylang/ponyc:TAG
```

If you're unfamiliar with Docker, remember to ensure that whatever path you provide for `/path/to/my-code` is a full path name and not a relative path, and also note the lack of a closing slash, `/`, at the *end* of the path name.

Note that if your host doesn't match the docker container, you'll probably have to run the resulting program inside the docker container as well, using a command like this:

```bash
docker run -v /path/to/my-code:/src/main ponylang/ponyc:TAG ./main
docker run -v /path/to/my-code:/src/main docker://ghcr.io/ponylang/ponyc:TAG ./main
```

To compile and run in one step run a command like this:

```bash
docker run -v /path/to/my-code:/src/main ponylang/ponyc:TAG sh -c "ponyc && ./main"
docker run -v /path/to/my-code:/src/main docker://ghcr.io/ponylang/ponyc:TAG sh -c "ponyc && ./main"
```

### Docker for Windows

Pull an image as above:

```bash
docker pull ponylang/ponyc:TAG
docker pull docker://ghcr.io/ponylang/ponyc:TAG
```

Share a local drive (volume), such as `c:`, with Docker for Windows, so that they are available to your containers. (Refer to [shared drives](https://docs.docker.com/docker-for-windows/#shared-drives) in the Docker for Windows documentation for details.)

Then you'll be able to run `ponyc` to compile a Pony program in a given directory, running a command like this:

```bash
docker run -v c:/path/to/my-code:/src/main ponylang/ponyc:TAG
docker run -v c:/path/to/my-code:/src/main docker://ghcr.io/ponylang/ponyc:TAG
```

Note the inserted drive letter. Replace with your drive letter as appropriate.

To run a program, run a command like this:

```bash
docker run -v c:/path/to/my-code:/src/main ponylang/ponyc:TAG ./main
docker run -v c:/path/to/my-code:/src/main docker://ghcr.io/ponylang/ponyc:TAG ./main
```

To compile and run in one step run a command like this:

```bash
docker run -v c:/path/to/my-code:/src/main ponylang/ponyc:TAG sh -c "ponyc && ./main"
docker run -v c:/path/to/my-code:/src/main docker://ghcr.io/ponylang/ponyc:TAG sh -c "ponyc && ./main"
```
Loading