Some checks failed
perso/opencode/pipeline/head Something is wrong with the build of this commit
2.3 KiB
2.3 KiB
AGENTS.md
Project overview
This repository builds and publishes a Docker image for OpenCode, the open source AI coding agent. The image runs OpenCode in headless server mode (opencode serve) and is automatically rebuilt and pushed to Docker Hub (jcabillot/opencode) every night by a Jenkins pipeline.
Repository structure
.
├── Dockerfile # Image definition
├── Jenkinsfile # CI/CD pipeline (nightly build + Docker Hub push)
└── README.md # Usage documentation
Dockerfile conventions
- Base image:
node:24-alpine— use the latest Node.js LTS Alpine image. - Install:
npm i -g opencode-ai— installs OpenCode globally. - Version check:
RUN opencode --versionafter install to validate the build and record the installed version in build logs. - Dedicated user: a non-root
opencodeuser and group are created withaddgroup/adduser. All runtime steps run as this user. - Entrypoint:
["opencode", "serve"]— the container always starts the HTTP server.
Jenkinsfile conventions
- The pipeline runs on a
@midnightcron trigger for nightly rebuilds. - Build uses
--no-cache --pullto always fetch the latest base image and package version. - Docker Hub credentials are stored under the
dockerhub_jcabillotJenkins credential ID. - The image is published as
jcabillot/opencode(no explicit tag =latest).
Useful commands
# Build the image locally
docker build -t opencode .
# Run the server on all interfaces
docker run -it -p 4096:4096 opencode --hostname 0.0.0.0
# Run with a project mounted
docker run -it -p 4096:4096 \
-v $(pwd):/home/opencode/project \
opencode --hostname 0.0.0.0
# Protect with a password
docker run -it -p 4096:4096 \
-e OPENCODE_SERVER_PASSWORD=secret \
opencode --hostname 0.0.0.0
opencode serve options
| Flag | Default | Description |
|---|---|---|
--port |
4096 |
Port to listen on |
--hostname |
127.0.0.1 |
Hostname to bind |
--mdns |
false |
Enable mDNS discovery |
--cors |
[] |
Additional allowed browser origins |
Environment variables
| Variable | Description |
|---|---|
OPENCODE_SERVER_PASSWORD |
Enables HTTP basic auth |
OPENCODE_SERVER_USERNAME |
Overrides the default username (opencode) |