Here’s a minimal Dockerfile based on Ubuntu that installs OpenCode using the official installer:
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
# Install dependencies
RUN apt-get update && apt-get install -y \
curl \
ca-certificates \
git \
bash \
&& rm -rf /var/lib/apt/lists/*
# Install OpenCode
RUN curl -fsSL https://opencode.ai/install | bash
# Add OpenCode to PATH
ENV PATH="/root/.opencode/bin:${PATH}"
# Default shell
CMD ["/bin/bash"]docker build -f Dockerfiles/dockerfile_ubuntu_user -t opencode-user .docker build -f Dockerfiles/dockerfile_ubuntu_root -t opencode-root .docker build -f Dockerfiles/dockerfile_ubuntu_node_user -t opencode-node-user .docker build -f Dockerfiles/dockerfile_ubuntu_max_user -t opencode-user-max .docker run -it \
-v "$HOME/.config/opencode:$HOME/.config/opencode" \
-v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro --user "$(id --user):$(id --group)" \
-v "$(pwd):$(pwd)" --workdir "$(pwd)" \
opencode-userdocker run -it \
-v "$HOME/.config/opencode:$HOME/.config/opencode" \
-v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro --user "$(id --user):$(id --group)" \
-v /opt/st/stm32cubeide_2.0.0/:/opt/st/stm32cubeide_2.0.0/ \
-v /opt/SEGGER/:/opt/SEGGER/ \
-v /dev/bus/usb:/dev/bus/usb \
--privileged \
-v "$(pwd):$(pwd)" --workdir "$(pwd)" \
opencode-userdocker run -it \
-v "$HOME/.config/opencode:$HOME/.config/opencode" \
-v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro --user "$(id --user):$(id --group)" \
-v "$HOME/Android/Sdk:/opt/android-sdk" \
-v "$(pwd):$(pwd)" --workdir "$(pwd)" \
opencode-user-maxAdjust $HOME/Android/Sdk to match your host Android SDK path.
docker run -it \
-v "$HOME/.config/opencode:/root/.config/opencode" \
-v "$(pwd):/root/workdir" --workdir /root/workdir \
opencode-rootopencode --versionThe official install method uses:
curl -fsSL https://opencode.ai/install | bashand installs the binary into ~/.opencode/bin. (computingforgeeks.com)