- Install opencode-ai globally via pnpm with build allowance - Fix pnpm global bin path by adding $PNPM_HOME/bin to PATH - Create /app/.config/opencode for persistent config storage - Document OpenCode usage and persistence in README.md - Log opencode version at container startup in entrypoint.sh
47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
---
|
|
layout: layouts/base.njk
|
|
permalink: /image/
|
|
---
|
|
|
|
# [taskfile.build](https://taskfile.build/image)
|
|
|
|
[](https://hub.docker.com/r/janikvonrotz/taskfile.build/)
|
|
|
|
The taskfile.build Docker image runs any project.
|
|
|
|
Source: <https://git.taskfile.build/src/branch/main/image>
|
|
|
|
## Usage
|
|
|
|
Setup environment variables:
|
|
|
|
```bash
|
|
export GIT_URL="https://git.taskfile.build" # required
|
|
export TASK_COMMANDS="install,build" # required if task file exists
|
|
export CADDY_ROOT="_site" # default is path to the repo
|
|
```
|
|
|
|
Run the taskfile.build image:
|
|
|
|
```bash
|
|
run() {
|
|
echo "Open http://localhost:8080 in your browser"
|
|
docker rm -f taskfile-build
|
|
docker run -p 8080:80 -d \
|
|
--name taskfile-build \
|
|
-e GIT_URL="https://git.taskfile.build" \
|
|
-e TASK_COMMANDS="install,build-11ty" \
|
|
-e CADDY_ROOT="_site" \
|
|
-v taskfile-build:/app \
|
|
janikvonrotz/taskfile.build:latest
|
|
}
|
|
```
|
|
|
|
The entrypoint script of the container will clone the project from git url. If the project is already cloned it will pull the origin. Afterwards it runs each command in the root of the cloned repository with the task file `./task <command>`. Finally the Caddy webserver is started that serves static content from the root path.
|
|
|
|
## OpenCode
|
|
|
|
The image includes the [OpenCode](https://opencode.ai/) CLI installed via pnpm.
|
|
|
|
The OpenCode config is stored under `/app/.config/opencode/` inside the container. Since `/app` is mounted as a Docker volume in the example above, the OpenCode config is already persisted alongside the project.
|