Skip to content

v1.14.0

@alexeyqu alexeyqu tagged this 30 Jun 15:30
Adds a `Dockerfile` pinned to `gradle:8.10.2-jdk11` and a
`docker-compose.yml` so contributors can run the full test suite with no
local JDK installed:

```bash
docker compose run --rm test
```

The compose file encodes the source bind-mount and a named volume for
the Gradle dependency cache, so the first run resolves dependencies and
subsequent runs reuse them.

## Notable decisions / tradeoffs

- **Bind-mount design:** source is bind-mounted at run time rather than
`COPY`ed into the image, so the image doesn't need rebuilding on every
code change. The `docker-compose.yml` hides this from contributors --
they just run `docker compose run`.
- **`.gitignore` cleanup:** removed the bare `Dockerfile` rule. The
rule's comment said it was for the demo-server's generated `Dockerfile`,
but that file lands in `distributions/demo-server/build/demo/Dockerfile`
-- already covered by the `build/` ignore rule. The bare rule was
redundant.
- **Image name `datatransferproject/dev`:** mirrors the existing
`datatransferproject/demo` image produced by the `:dockerize` task,
establishing a consistent namespace.
- **JDK pinned to 11:** the Gradle wrapper (6.9.2) can't parse Java 17
bytecode when compiling build scripts -- `gradle:*-jdk17` fails
outright. Not a preference; a hard constraint from the wrapper version.
Assets 2
Loading