> For the complete documentation index, see [llms.txt](https://icij.gitbook.io/prophecies/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://icij.gitbook.io/prophecies/developers/publishing-a-new-docker-image.md).

# Publishing a new Docker image

## Docker image tag

The Docker image is tagged with the version extracted from the git tag (e.g., `icij/prophecies:1.0.0`). Additionally, the image is tagged as `latest`.

* **Image Repository**: [`icij/prophecies`](https://hub.docker.com/repository/docker/icij/prophecies/general)
* **Platform**:  linux/arm64, linux/amd64

This documentation provides a comprehensive guide on how to release a new Docker image, build, and test the application locally using the provided Makefile commands.

## Releasing a new Docker Image

### 1. Update Version

The version can be updated as `major`, `minor`, or `patch` using the Makefile. To do this, run one of the following commands depending on the type of version bump you need:

```bash
make major
make minor
make patch
```

These commands automatically update the version in `pyproject.toml` for the Python backend and `package.json` in the frontend directory, then commit these changes and tag the version in Git.

### 2. Push the Changes and Tag to Git

After updating the version and creating a git tag, push the changes and the tag to your git repository:

```bash
git push && git push --tags
```

Pushing the tag is crucial because the GitHub Actions workflow for Docker image publishing is triggered by a push to tags that follow the semantic versioning format, prefixed with `v` (e.g., `v1.0.0`).

## Build and test locally

A convenience `docker-compose.yml` file is located as the root of the repository. To build and test Prophecies locally with Docker, you can run from the app's root directory:

```bash
docker compose up
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://icij.gitbook.io/prophecies/developers/publishing-a-new-docker-image.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
