fix: various fixes

- Add uid and gid to dev user
- Entry point script is mounted and not built in docker container
- Change image name
This commit is contained in:
Ian
2026-09-29 23:38:33 +02:00
parent 14bc179526
commit 9e060a39fe
4 changed files with 64 additions and 17 deletions
+41 -11
View File
@@ -6,6 +6,9 @@ FROM ubuntu:${UBUNTU_VERSION}
ARG OPENCODE_VERSION=1.18.32
ARG NODE_VERSION=24.21.0
ARG DEV_UID=1000
ARG DEV_GID=1000
ENV DEBIAN_FRONTEND=noninteractive \
HOME=/home/dev \
EDITOR=nvim \
@@ -15,6 +18,7 @@ ENV DEBIAN_FRONTEND=noninteractive \
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# System packages
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
@@ -48,28 +52,54 @@ RUN apt-get update \
xz-utils \
file \
util-linux \
# && rm -rf /var/lib/apt/lists/* \
&& update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java \
&& update-alternatives --set javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac \
# && rm -rf /var/lib/apt/lists/*
&& echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen \
&& locale-gen \
&& useradd --create-home --shell /bin/bash dev \
&& mkdir -p /workspace /home/dev/.config/opencode /home/dev/.local/share/opencode \
/home/dev/.cache/opencode /home/dev/.cache/pip /home/dev/.npm /home/dev/.m2 \
&& chown -R dev:dev /workspace /home/dev
&& locale-gen
RUN curl -fsSLO "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" \
&& tar -xJf "node-v${NODE_VERSION}-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
&& rm "node-v${NODE_VERSION}-linux-x64.tar.xz" \
# Runtime user
RUN groupadd --gid 1001 dev \
&& useradd \
--uid 1001 \
--gid 1001 \
--create-home \
--shell /bin/bash \
dev
# User directories
RUN mkdir -p \
/workspace \
/home/dev/.config/opencode \
/home/dev/.local/share/opencode \
/home/dev/.cache/opencode \
/home/dev/.cache/pip \
/home/dev/.npm \
/home/dev/.m2 \
&& chown -R dev:dev \
/workspace \
/home/dev
# Node.js + OpenCode
RUN curl -fsSLO \
"https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" \
&& tar -xJf \
"node-v${NODE_VERSION}-linux-x64.tar.xz" \
-C /usr/local \
--strip-components=1 \
&& rm \
"node-v${NODE_VERSION}-linux-x64.tar.xz" \
&& node --version \
&& npm --version \
&& npm install --global "opencode-ai@${OPENCODE_VERSION}" \
&& opencode --version \
&& npm cache clean --force
COPY entrypoint.sh /usr/local/bin/opencode-dev-entrypoint
RUN chmod +x /usr/local/bin/opencode-dev-entrypoint
# Runtime
USER dev
WORKDIR /workspace
ENTRYPOINT ["/usr/local/bin/opencode-dev-entrypoint"]
CMD ["bash"]