Skip to content

Commit 3058c7d

Browse files
cursoragentpRizz
andcommitted
fix(docker): stabilize pre-commit docker check and totp pam wording
Co-authored-by: Peter Ryszkiewicz <pRizz@users.noreply.github.com>
1 parent 8e13d24 commit 3058c7d

3 files changed

Lines changed: 39 additions & 7 deletions

File tree

justfile

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,13 +216,17 @@ build-docker-no-cache:
216216
check-docker:
217217
@echo "Checking Dockerfile syntax and build stages..."
218218
@cp packages/core/src/docker/Dockerfile Dockerfile.build
219-
DOCKER_BUILDKIT=1 docker build \
220-
-f Dockerfile.build \
221-
--target opencode-build \
222-
-t opencode-cloud-sandbox:check \
223-
.
219+
@builder=opencode-cloud-precommit; \
220+
if ! docker buildx inspect "$builder" >/dev/null 2>&1; then \
221+
docker buildx create --name "$builder" --driver docker-container >/dev/null; \
222+
fi; \
223+
docker buildx inspect "$builder" --bootstrap >/dev/null; \
224+
docker buildx build \
225+
--builder "$builder" \
226+
-f Dockerfile.build \
227+
--target runtime-config-check \
228+
.
224229
@rm -f Dockerfile.build
225-
@docker rmi opencode-cloud-sandbox:check 2>/dev/null || true
226230
@echo "✓ Dockerfile check passed"
227231

228232
# Run all tests (fast)

packages/core/src/docker/Dockerfile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,34 @@ RUN set -eux; \
749749
sudo chmod 4755 /usr/local/bin/opencode-broker; \
750750
sudo rm -rf /tmp/opencode-dist /tmp/opencode-broker-bin
751751

752+
# -----------------------------------------------------------------------------
753+
# Stage 3: Runtime Config Check
754+
# -----------------------------------------------------------------------------
755+
# Lightweight validation stage for local pre-commit Docker checks.
756+
# Verifies runtime config assets and COPY paths without rebuilding heavy Rust
757+
# and JS artifacts in later stages.
758+
FROM base AS runtime-config-check
759+
760+
USER root
761+
COPY --chown=root:root --chmod=0644 packages/core/src/docker/files/pam/opencode /etc/pam.d/opencode
762+
COPY --chown=root:root --chmod=0644 packages/core/src/docker/files/opencode-broker.service /etc/systemd/system/opencode-broker.service
763+
COPY --chown=root:root --chmod=0644 packages/core/src/docker/files/opencode.service /etc/systemd/system/opencode.service
764+
RUN install -d -o opencoder -g opencoder -m 0750 /home/opencoder/.config/opencode
765+
COPY --chown=opencoder:opencoder --chmod=0640 packages/core/src/docker/files/opencode.jsonc /home/opencoder/.config/opencode/opencode.jsonc
766+
RUN install -d -m 0755 /etc/opencode-cloud
767+
COPY --chown=root:root --chmod=0644 packages/core/src/docker/files/opencode.jsonc /etc/opencode-cloud/opencode.jsonc.default
768+
COPY --chown=root:root --chmod=0755 packages/core/src/docker/files/entrypoint.sh /usr/local/bin/entrypoint.sh
769+
COPY --chown=root:root --chmod=0700 packages/core/src/docker/files/opencode-cloud-bootstrap.sh /usr/local/bin/opencode-cloud-bootstrap
770+
COPY --chown=root:root --chmod=0755 packages/core/src/docker/files/healthcheck.sh /usr/local/bin/healthcheck.sh
771+
RUN test -f /etc/pam.d/opencode \
772+
&& test -f /etc/systemd/system/opencode-broker.service \
773+
&& test -f /etc/systemd/system/opencode.service \
774+
&& test -f /home/opencoder/.config/opencode/opencode.jsonc \
775+
&& test -f /etc/opencode-cloud/opencode.jsonc.default \
776+
&& test -x /usr/local/bin/entrypoint.sh \
777+
&& test -x /usr/local/bin/opencode-cloud-bootstrap \
778+
&& test -x /usr/local/bin/healthcheck.sh
779+
752780
# -----------------------------------------------------------------------------
753781
# Stage 3: Runtime
754782
# -----------------------------------------------------------------------------

packages/core/src/docker/files/pam/opencode

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
auth required pam_unix.so
66
account required pam_unix.so
77

8-
# Optional: Enable TOTP 2FA (uncomment when pam_google_authenticator is installed)
8+
# Optional: Enable TOTP authentication (uncomment when pam_google_authenticator is installed)
99
# auth required pam_google_authenticator.so

0 commit comments

Comments
 (0)