# jenkins

Jenkins Docker image repository

## Plugins

Jenkins plugins that are available in the Jenkins update centre should be defined in `plugins.txt`.

Each entry in the `plugins.txt` file is a plugin to install in the format `<plugin_id>:<version>`. Generally the version should be omitted unless it needs to be pinned for some reason.

Only top-level plugins should be defined unless there are specific version requirements for transitive dependencies.

The full resolved list of plugins and their versions is locked in the `plugins-lock.txt` file. This file should not be modified directly (see below for instructions on updating).

## Update Plugin Versions

Run the following command to update the `plugins-lock.txt` file from the `plugins.txt` file:

```bash
docker compose run --rm --build lock-plugins
````

## Building the Image

Copy `.env.shadow` to `.env` and configure Prisma credentials. Then build the image using:

```
docker compose build jenkins
```

## Running

Run using Docker Compose:

```
docker compose up jenkins
```
