Files
git.taskfile.build/image/Dockerfile
T
Janik von Rotz 481dd5ad90 feat(image): install opencode with specific version and update task command name
- Install opencode-ai@1.17.8 globally via pnpm with build allowance
- Copy opencode binary from pnpm store to /usr/local/bin/opencode
- Update task command from 'run' to 'run-container' for clarity
- Add volume removal before container start in run-container task
2026-06-19 13:38:55 +02:00

38 lines
1.1 KiB
Docker

FROM node:22-slim
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME/bin:$PNPM_HOME:$PATH"
RUN corepack enable && \
apt-get update && \
apt-get install -y git hugo caddy curl && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install uv for Python package management
COPY --from=ghcr.io/astral-sh/uv:0.7.21 /uv /uvx /bin/
# Install opencode
ARG OPENCODE_VERSION=1.17.8
RUN pnpm add -g opencode-ai@${OPENCODE_VERSION} --allow-build=opencode-ai && \
cp "$(find /pnpm/store -path '*/opencode-linux-x64/*/node_modules/opencode-linux-x64/bin/opencode' -not -path '*baseline*' | head -1)" /usr/local/bin/opencode && \
chmod +x /usr/local/bin/opencode
# Prepare virtual env
RUN uv venv /app/.venv
ENV PATH=/app/.venv:$PATH
# Create opencode config directory under /app for persistence
RUN mkdir -p /app/.config/opencode
ENV OPENCODE_CONFIG_DIR="/app/.config/opencode"
COPY ./bin /usr/local/bin
COPY ./image/entrypoint.sh /
EXPOSE 80
ENTRYPOINT ["/entrypoint.sh"]
CMD ["caddy"]
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD curl -f http://localhost:80/ || exit 1