codex-universal (local-build-0e4b0ff7bd79)

Published 2026-05-22 21:07:36 +00:00 by makistsantekidis

Installation

docker pull forgejo.chonk.maquies.me/makistsantekidis/codex-universal:local-build-0e4b0ff7bd79
sha256:25f4f48e54ddf745ee1115a34efea88fef312a2565492a8d44198547d01b2536

Image layers

ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.version=24.04
ADD file:8ce1caf246e7c778bca84c516d02fd4e83766bb2c530a0fffa8a351b560a2728 in /
CMD ["/bin/bash"]
ARG TARGETOS
ARG TARGETARCH
ARG IMAGE_PROFILE=slim
ARG INSTALL_LLVM=1
ARG INSTALL_PYTHON=1
ARG INSTALL_NODE=1
ARG INSTALL_CODEX_CLI=1
ARG INSTALL_OPENCODE_CLI=1
ARG INSTALL_GOOSE=1
ARG INSTALL_FORGEJO_CLI=1
ARG INSTALL_BUN=1
ARG INSTALL_JAVA=0
ARG INSTALL_SWIFT=0
ARG INSTALL_RUST=1
ARG INSTALL_RUBY=0
ARG INSTALL_CPP_TOOLS=1
ARG INSTALL_BAZEL=0
ARG INSTALL_GO=1
ARG INSTALL_PHP=0
ARG INSTALL_ELIXIR=0
ARG CODEX_UID=1000
ARG CODEX_GID=1000
ENV LANG=C.UTF-8
ENV HOME=/root
ENV DEBIAN_FRONTEND=noninteractive
ENV CODEX_USER=codex
ENV CODEX_USER_HOME=/home/codex
ENV MISE_DATA_DIR=/opt/mise/data
ENV MISE_CONFIG_DIR=/opt/mise/config
ENV MISE_CACHE_DIR=/opt/mise/cache
ENV MISE_STATE_DIR=/opt/mise/state
RUN |22 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends ca-certificates binutils=2.42-* bubblewrap=0.9.* dbus dbus-x11 sudo=1.9.* build-essential=12.10* curl=8.5.* fd-find=9.0.* gettext=0.21-* git=1:2.43.* git-lfs=3.4.* gnome-keyring gnupg=2.4.* jq=1.7.* libbz2-dev=1.0.* libc6=2.39-* libc6-dev=2.39-* libcurl4-openssl-dev=8.5.* libdb-dev=1:5.3.* libdbus-1-dev libedit2=3.1-* libffi-dev=3.4.* libgcc-13-dev=13.3.* libgdbm-compat-dev=1.23-* libgdbm-dev=1.23-* liblzma-dev=5.6.* libncurses-dev=6.4+20240113-* libnss3-dev=2:3.98-* libreadline-dev=8.2-* libsqlite3-dev=3.45.* libssl-dev=3.0.* libstdc++-13-dev=13.3.* libsecret-1-0 libsecret-tools libuuid1=2.39.* libxcb1 libxml2-dev=2.9.* make=4.3-* netcat-openbsd=1.226-* openssh-client=1:9.6p1-* pkg-config=1.8.* protobuf-compiler ripgrep=14.1.* rsync=3.2.* software-properties-common=0.99.* sqlite3=3.45.* tk-dev=8.6.* tzdata unzip=6.0-* uuid-dev=2.39.* wget=1.21.* xz-utils=5.6.* zip=3.0-* zlib1g=1:1.3.* zlib1g-dev=1:1.3.* && rm -rf /var/lib/apt/lists/* # buildkit
ARG FORGEJO_CLI_VERSION=0.5.0
RUN |23 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 /bin/sh -c if [ "$INSTALL_FORGEJO_CLI" = "1" ]; then case "$TARGETARCH" in amd64) forgejo_cli_arch="x86_64" ;; arm64) forgejo_cli_arch="aarch64" ;; *) echo "Unsupported TARGETARCH for Forgejo CLI: $TARGETARCH" >&2; exit 1 ;; esac && curl -fsSL "https://codeberg.org/forgejo-contrib/forgejo-cli/releases/download/v${FORGEJO_CLI_VERSION}/forgejo-cli-${forgejo_cli_arch}-linux.tar.gz" -o /tmp/forgejo-cli.tar.gz && tar -xzf /tmp/forgejo-cli.tar.gz -C /usr/local/bin fj && rm -f /tmp/forgejo-cli.tar.gz && chmod 0755 /usr/local/bin/fj && fj version; fi # buildkit
RUN |23 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 /bin/sh -c if getent group "$CODEX_GID" >/dev/null; then existing_group="$(getent group "$CODEX_GID" | cut -d: -f1)"; [ "$existing_group" = "$CODEX_USER" ] || groupmod --new-name "$CODEX_USER" "$existing_group"; else groupadd --gid "$CODEX_GID" "$CODEX_USER"; fi && if getent passwd "$CODEX_UID" >/dev/null; then existing_user="$(getent passwd "$CODEX_UID" | cut -d: -f1)"; [ "$existing_user" = "$CODEX_USER" ] || usermod --login "$CODEX_USER" --home "$CODEX_USER_HOME" --move-home --gid "$CODEX_GID" --shell /bin/bash "$existing_user"; else useradd --uid "$CODEX_UID" --gid "$CODEX_GID" --create-home --home-dir "$CODEX_USER_HOME" --shell /bin/bash "$CODEX_USER"; fi && install -d -o "$CODEX_UID" -g "$CODEX_GID" "$CODEX_USER_HOME" "$CODEX_USER_HOME/.codex" "$CODEX_USER_HOME/.local" "$CODEX_USER_HOME/.config" "$CODEX_USER_HOME/.cache" "$CODEX_USER_HOME/go" /workspace # buildkit
RUN |23 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 /bin/sh -c install -dm 0755 /etc/apt/keyrings && curl -fsSL https://mise.jdx.dev/gpg-key.pub | gpg --batch --yes --dearmor -o /etc/apt/keyrings/mise-archive-keyring.gpg && chmod 0644 /etc/apt/keyrings/mise-archive-keyring.gpg && echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg] https://mise.jdx.dev/deb stable main" > /etc/apt/sources.list.d/mise.list && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends mise/stable && rm -rf /var/lib/apt/lists/* && install -d "$MISE_DATA_DIR" "$MISE_CONFIG_DIR" "$MISE_CACHE_DIR" "$MISE_STATE_DIR" && echo 'export MISE_DATA_DIR="/opt/mise/data"' >> /etc/profile && echo 'export MISE_CONFIG_DIR="/opt/mise/config"' >> /etc/profile && echo 'export MISE_CACHE_DIR="/opt/mise/cache"' >> /etc/profile && echo 'export MISE_STATE_DIR="/opt/mise/state"' >> /etc/profile && echo 'command -v mise >/dev/null 2>&1 && eval "$(mise activate bash)"' >> /etc/profile && mise settings set experimental true && mise settings set override_tool_versions_filenames none && mise settings add idiomatic_version_file_enable_tools "[]" && mise settings add disable_backends asdf && mise settings add disable_backends vfox # buildkit
ENV PATH=/opt/mise/data/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |23 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 /bin/sh -c if [ "$INSTALL_LLVM" = "1" ]; then apt-get update && apt-get install -y --no-install-recommends clang lld cmake=3.28.* ccache=4.9.* ninja-build=1.11.* nasm=2.16.* yasm=1.3.* gawk=1:5.2.* lsb-release=12.0-* && rm -rf /var/lib/apt/lists/* && command -v clang && command -v clang++ && command -v lld; fi # buildkit
ARG PYTHON_VERSIONS=3.14
ENV PYENV_ROOT=/opt/pyenv
ENV PATH=/opt/pyenv/bin:/opt/pyenv/shims:/opt/mise/data/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |24 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 /bin/sh -c if [ "$INSTALL_PYTHON" = "1" ]; then git -c advice.detachedHead=0 clone --depth 1 https://github.com/pyenv/pyenv.git "$PYENV_ROOT" && echo 'export PYENV_ROOT="/opt/pyenv"' >> /etc/profile && echo 'export PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"' >> /etc/profile && echo 'command -v pyenv >/dev/null 2>&1 && eval "$(pyenv init - bash)"' >> /etc/profile && cd "$PYENV_ROOT" && src/configure && make -C src && pyenv install $PYTHON_VERSIONS && pyenv global ${PYTHON_VERSIONS%% *} && rm -rf "$PYENV_ROOT/cache"; fi # buildkit
ENV PIPX_HOME=/opt/pipx
ENV PIPX_BIN_DIR=/opt/pipx/bin
ENV PATH=/opt/pipx/bin:/opt/pyenv/bin:/opt/pyenv/shims:/opt/mise/data/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |24 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 /bin/sh -c if [ "$INSTALL_PYTHON" = "1" ]; then apt-get update && apt-get install -y --no-install-recommends pipx=1.4.* && rm -rf /var/lib/apt/lists/* && pipx install --pip-args="--no-cache-dir --no-compile --root-user-action=ignore" poetry==2.1.* uv==0.7.* && for pyv in "${PYENV_ROOT}/versions/"*; do "$pyv/bin/python" -m pip install --no-cache-dir --no-compile --root-user-action=ignore --upgrade pip && "$pyv/bin/pip" install --no-cache-dir --no-compile --root-user-action=ignore ruff black mypy pyright isort pytest; done; fi # buildkit
ENV UV_NO_PROGRESS=1
ARG NVM_VERSION=v0.40.2
ARG NODE_VERSIONS=24
ARG NODE_VERSION=24
ENV NVM_DIR=/opt/nvm
ENV COREPACK_DEFAULT_TO_LATEST=0
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
ENV COREPACK_ENABLE_AUTO_PIN=0
ENV COREPACK_ENABLE_STRICT=0
RUN |27 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 /bin/sh -c if [ "$INSTALL_NODE" = "1" ]; then git -c advice.detachedHead=0 clone --branch "$NVM_VERSION" --depth 1 https://github.com/nvm-sh/nvm.git "$NVM_DIR" && echo 'export NVM_DIR="/opt/nvm"' >> /etc/profile && echo '[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"' >> /etc/profile && printf 'prettier\neslint\ntypescript\n' > "$NVM_DIR/default-packages" && . $NVM_DIR/nvm.sh && for v in $NODE_VERSIONS; do nvm install "$v" && nvm use "$v" && if [ "${v%%.*}" = "18" ]; then npm install -g npm@10.9 pnpm@10.12; else npm install -g npm@11.4 pnpm@10.12; fi && corepack enable && corepack install -g yarn; done && nvm alias default "$NODE_VERSION" && nvm use "$NODE_VERSION" && nvm cache clear && npm cache clean --force || true && pnpm store prune || true && yarn cache clean || true; fi # buildkit
ARG CODEX_CLI_PACKAGE=@openai/codex
RUN |28 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex /bin/sh -c if [ "$INSTALL_CODEX_CLI" = "1" ]; then if [ "$INSTALL_NODE" != "1" ]; then echo "INSTALL_CODEX_CLI=1 requires INSTALL_NODE=1" >&2; exit 1; fi && . "$NVM_DIR/nvm.sh" && nvm use "$NODE_VERSION" && npm install -g "$CODEX_CLI_PACKAGE" && chmod -R a+rX "$NVM_DIR" && codex --version; fi # buildkit
ARG OPENCODE_CLI_VERSION=1.15.5
RUN |29 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 /bin/sh -c if [ "$INSTALL_OPENCODE_CLI" = "1" ]; then if [ "$INSTALL_NODE" != "1" ]; then echo "INSTALL_OPENCODE_CLI=1 requires INSTALL_NODE=1" >&2; exit 1; fi && . "$NVM_DIR/nvm.sh" && nvm use "$NODE_VERSION" && case "$TARGETARCH" in amd64) if grep -qw avx2 /proc/cpuinfo; then opencode_pkg="opencode-linux-x64"; else opencode_pkg="opencode-linux-x64-baseline"; fi ;; arm64) opencode_pkg="opencode-linux-arm64" ;; *) echo "Unsupported TARGETARCH for OpenCode CLI: $TARGETARCH" >&2; exit 1 ;; esac && tmpdir="$(mktemp -d)" && npm install --ignore-scripts --no-save --loglevel=error --prefix "$tmpdir" "${opencode_pkg}@${OPENCODE_CLI_VERSION}" && install -m 0755 "$tmpdir/node_modules/${opencode_pkg}/bin/opencode" "$(dirname "$(command -v node)")/opencode" && rm -rf "$tmpdir" && chmod -R a+rX "$NVM_DIR" && opencode --version; fi # buildkit
ARG BUN_VERSION=1.2.14
RUN |30 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 /bin/sh -c if [ "$INSTALL_BUN" = "1" ]; then mise use --global "bun@${BUN_VERSION}" && mise cache clear || true; fi # buildkit
ARG GRADLE_VERSION=8.14
ARG MAVEN_VERSION=3.9.10
ARG AMD_JAVA_VERSIONS=21
ARG ARM_JAVA_VERSIONS=21
RUN |34 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 /bin/sh -c if [ "$INSTALL_JAVA" = "1" ]; then JAVA_VERSIONS="$( [ "$TARGETARCH" = "arm64" ] && echo "$ARM_JAVA_VERSIONS" || echo "$AMD_JAVA_VERSIONS" )" && for v in $JAVA_VERSIONS; do mise install "java@${v}"; done && mise use --global "java@${JAVA_VERSIONS%% *}" && mise use --global "gradle@${GRADLE_VERSION}" && mise use --global "maven@${MAVEN_VERSION}" && mise cache clear || true; fi # buildkit
ARG SWIFT_VERSIONS=6.2
ENV SWIFTLY_BIN_DIR=/root/.swiftly/bin
ENV PATH=/root/.swiftly/bin:/opt/pipx/bin:/opt/pyenv/bin:/opt/pyenv/shims:/opt/mise/data/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |35 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 /bin/sh -c if [ "$INSTALL_SWIFT" = "1" ]; then apt-get update && apt-get install -y --no-install-recommends gnupg2=2.4.* && rm -rf /var/lib/apt/lists/* && curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz && tar zxf swiftly-$(uname -m).tar.gz && ./swiftly init --quiet-shell-followup && for v in $SWIFT_VERSIONS; do swiftly install "$v"; done && swiftly use "${SWIFT_VERSIONS%% *}"; fi # buildkit
ARG RUST_VERSIONS=1.95.0
ENV CARGO_HOME=/opt/cargo
ENV RUSTUP_HOME=/opt/rustup
ENV PATH=/opt/cargo/bin:/root/.swiftly/bin:/opt/pipx/bin:/opt/pyenv/bin:/opt/pyenv/shims:/opt/mise/data/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |36 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 /bin/sh -c if [ "$INSTALL_RUST" = "1" ]; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain none && . "$CARGO_HOME/env" && echo 'export CARGO_HOME="/opt/cargo"' >> /etc/profile && echo 'export RUSTUP_HOME="/opt/rustup"' >> /etc/profile && echo '[ -f "$CARGO_HOME/env" ] && source "$CARGO_HOME/env"' >> /etc/profile && rustup toolchain install $RUST_VERSIONS --profile minimal --component rustfmt --component clippy && rustup default ${RUST_VERSIONS%% *}; fi # buildkit
ARG GOOSE_VERSION=v1.35.0
RUN |37 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 /bin/sh -c if [ "$INSTALL_GOOSE" = "1" ]; then if [ "$INSTALL_RUST" != "1" ]; then echo "INSTALL_GOOSE=1 requires INSTALL_RUST=1" >&2; exit 1; fi && . "$CARGO_HOME/env" && git clone --depth 1 --branch "$GOOSE_VERSION" https://github.com/aaif-goose/goose.git /tmp/goose && cd /tmp/goose && goose_cargo_features="goose-cli/code-mode,goose-cli/aws-providers,goose-cli/telemetry,goose-cli/otel,goose-cli/rustls-tls,goose-cli/system-keyring,goose-server/code-mode,goose-server/aws-providers,goose-server/telemetry,goose-server/otel,goose-server/rustls-tls,goose-server/system-keyring" && CARGO_TARGET_DIR=/tmp/goose-target cargo build --locked --release -p goose-cli -p goose-server --no-default-features --features "$goose_cargo_features" && install -m 0755 /tmp/goose-target/release/goose /usr/local/bin/goose && install -m 0755 /tmp/goose-target/release/goosed /usr/local/bin/goosed && rm -rf /tmp/goose && goose --version && goosed --version; fi # buildkit
ARG RUBY_VERSIONS=3.4.4
RUN |38 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 /bin/sh -c if [ "$INSTALL_RUBY" = "1" ]; then apt-get update && apt-get install -y --no-install-recommends libyaml-dev=0.2.* libgmp-dev=2:6.3.* && rm -rf /var/lib/apt/lists/* && for v in $RUBY_VERSIONS; do mise install "ruby@${v}"; done && mise use --global "ruby@${RUBY_VERSIONS%% *}" && mise cache clear || true; fi # buildkit
RUN |38 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 /bin/sh -c if [ "$INSTALL_CPP_TOOLS" = "1" ]; then pipx install --pip-args="--no-cache-dir --no-compile --root-user-action=ignore" cpplint==2.0.* clang-tidy==20.1.* clang-format==20.1.* cmakelang==0.6.*; fi # buildkit
ARG BAZELISK_VERSION=v1.26.0
RUN |39 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 /bin/sh -c if [ "$INSTALL_BAZEL" = "1" ]; then curl -L --fail https://github.com/bazelbuild/bazelisk/releases/download/${BAZELISK_VERSION}/bazelisk-${TARGETOS}-${TARGETARCH} -o /usr/local/bin/bazelisk && chmod +x /usr/local/bin/bazelisk && ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel; fi # buildkit
ARG GO_VERSIONS=1.25.1
ARG GOLANG_CI_LINT_VERSION=2.1.6
ENV PATH=/usr/local/go/bin:/home/codex/go/bin:/opt/cargo/bin:/root/.swiftly/bin:/opt/pipx/bin:/opt/pyenv/bin:/opt/pyenv/shims:/opt/mise/data/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |41 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 /bin/sh -c if [ "$INSTALL_GO" = "1" ]; then for v in $GO_VERSIONS; do mise install "go@${v}"; done && mise use --global "go@${GO_VERSIONS%% *}" && mise use --global "golangci-lint@${GOLANG_CI_LINT_VERSION}" && mise cache clear || true; fi # buildkit
ARG PHP_VERSIONS=8.5
ENV PHPENV_ROOT=/root/.phpenv
ENV PATH=/root/.phpenv/bin:/root/.phpenv/shims:/usr/local/go/bin:/home/codex/go/bin:/opt/cargo/bin:/root/.swiftly/bin:/opt/pipx/bin:/opt/pyenv/bin:/opt/pyenv/shims:/opt/mise/data/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |42 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 PHP_VERSIONS=8.5 /bin/sh -c if [ "$INSTALL_PHP" = "1" ]; then apt-get update && apt-get install -y --no-install-recommends build-essential pkg-config ccache autoconf=2.71-* bison=2:3.8.* re2c=3.1-* libgd-dev=2.3.* libedit-dev=3.1-* libicu-dev=74.2-* libjpeg-dev=8c-* libonig-dev=6.9.* libpng-dev=1.6.* libzip-dev=1.7.* libssl-dev zlib1g-dev libcurl4-openssl-dev libreadline-dev libtidy-dev libxslt1-dev && rm -rf /var/lib/apt/lists/* && git clone https://github.com/phpenv/phpenv.git /root/.phpenv && git clone https://github.com/php-build/php-build.git /root/.phpenv/plugins/php-build && echo 'eval "$(phpenv init - bash)"' >> /etc/profile && bash -lc 'eval "$(phpenv init -)" && for v in $PHP_VERSIONS; do phpenv install -s "${v}snapshot"; done && phpenv rehash && phpenv global "${PHP_VERSIONS%% *}snapshot"' && rm -rf /root/.phpenv/cache && curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer; fi # buildkit
ARG ERLANG_VERSION=27.1.2
ARG ELIXIR_VERSION=1.18.3
RUN |44 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 PHP_VERSIONS=8.5 ERLANG_VERSION=27.1.2 ELIXIR_VERSION=1.18.3 /bin/sh -c if [ "$INSTALL_ELIXIR" = "1" ]; then mise install "erlang@${ERLANG_VERSION}" "elixir@${ELIXIR_VERSION}-otp-27" && mise use --global "erlang@${ERLANG_VERSION}" "elixir@${ELIXIR_VERSION}-otp-27" && mise cache clear || true; fi # buildkit
ARG INSTALL_VSCODE_CLI=1
ARG VSCODE_CLI_VERSION=latest
ARG VSCODE_CLI_QUALITY=stable
RUN |47 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 PHP_VERSIONS=8.5 ERLANG_VERSION=27.1.2 ELIXIR_VERSION=1.18.3 INSTALL_VSCODE_CLI=1 VSCODE_CLI_VERSION=latest VSCODE_CLI_QUALITY=stable /bin/sh -c if [ "$INSTALL_VSCODE_CLI" = "1" ]; then case "$TARGETARCH" in amd64) vscode_cli_arch="x64" ;; arm64) vscode_cli_arch="arm64" ;; *) echo "Unsupported TARGETARCH for VS Code CLI: $TARGETARCH" >&2; exit 1 ;; esac && curl -fsSL "https://update.code.visualstudio.com/${VSCODE_CLI_VERSION}/cli-linux-${vscode_cli_arch}/${VSCODE_CLI_QUALITY}" -o /tmp/vscode-cli.tar.gz && tar -xzf /tmp/vscode-cli.tar.gz -C /usr/local/bin code && rm -f /tmp/vscode-cli.tar.gz && chmod 0755 /usr/local/bin/code && code --version && code tunnel --help >/dev/null; fi # buildkit
COPY setup_universal.sh /opt/codex/setup_universal.sh # buildkit
RUN |47 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 PHP_VERSIONS=8.5 ERLANG_VERSION=27.1.2 ELIXIR_VERSION=1.18.3 INSTALL_VSCODE_CLI=1 VSCODE_CLI_VERSION=latest VSCODE_CLI_QUALITY=stable /bin/sh -c chmod +x /opt/codex/setup_universal.sh # buildkit
COPY verify.sh /opt/verify.sh # buildkit
RUN |47 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 PHP_VERSIONS=8.5 ERLANG_VERSION=27.1.2 ELIXIR_VERSION=1.18.3 INSTALL_VSCODE_CLI=1 VSCODE_CLI_VERSION=latest VSCODE_CLI_QUALITY=stable /bin/sh -c chmod +x /opt/verify.sh && INSTALL_LLVM="$INSTALL_LLVM" INSTALL_PYTHON="$INSTALL_PYTHON" INSTALL_NODE="$INSTALL_NODE" INSTALL_CODEX_CLI="$INSTALL_CODEX_CLI" INSTALL_OPENCODE_CLI="$INSTALL_OPENCODE_CLI" INSTALL_VSCODE_CLI="$INSTALL_VSCODE_CLI" INSTALL_GOOSE="$INSTALL_GOOSE" INSTALL_BUN="$INSTALL_BUN" INSTALL_JAVA="$INSTALL_JAVA" INSTALL_SWIFT="$INSTALL_SWIFT" INSTALL_RUST="$INSTALL_RUST" INSTALL_RUBY="$INSTALL_RUBY" INSTALL_CPP_TOOLS="$INSTALL_CPP_TOOLS" INSTALL_BAZEL="$INSTALL_BAZEL" INSTALL_GO="$INSTALL_GO" INSTALL_PHP="$INSTALL_PHP" INSTALL_ELIXIR="$INSTALL_ELIXIR" PYTHON_VERSIONS="$PYTHON_VERSIONS" NODE_VERSIONS="$NODE_VERSIONS" RUST_VERSIONS="$RUST_VERSIONS" GO_VERSIONS="$GO_VERSIONS" SWIFT_VERSIONS="$SWIFT_VERSIONS" RUBY_VERSIONS="$RUBY_VERSIONS" PHP_VERSIONS="$PHP_VERSIONS" JAVA_VERSIONS="$( [ "$TARGETARCH" = "arm64" ] && echo "$ARM_JAVA_VERSIONS" || echo "$AMD_JAVA_VERSIONS" )" "/opt/verify.sh" # buildkit
ENV HOME=/home/codex
ENV CODEX_HOME=/home/codex/.codex
ENV XDG_CONFIG_HOME=/home/codex/.config
ENV XDG_DATA_HOME=/home/codex/.local/share
ENV XDG_STATE_HOME=/home/codex/.local/state
ENV XDG_CACHE_HOME=/home/codex/.cache
RUN |47 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 PHP_VERSIONS=8.5 ERLANG_VERSION=27.1.2 ELIXIR_VERSION=1.18.3 INSTALL_VSCODE_CLI=1 VSCODE_CLI_VERSION=latest VSCODE_CLI_QUALITY=stable /bin/sh -c install -d "$CODEX_USER_HOME" "$CODEX_USER_HOME/.codex" "$CODEX_USER_HOME/.local" "$CODEX_USER_HOME/.config" "$CODEX_USER_HOME/.cache" "$CODEX_USER_HOME/go" "$XDG_DATA_HOME" "$XDG_STATE_HOME" "$XDG_CACHE_HOME" "$PYENV_ROOT" "$NVM_DIR" "$CARGO_HOME" "$RUSTUP_HOME" "$MISE_DATA_DIR" "$MISE_CONFIG_DIR" "$MISE_CACHE_DIR" "$MISE_STATE_DIR" "$PIPX_HOME" /workspace && chown -R "$CODEX_UID:$CODEX_GID" "$CODEX_USER_HOME" "$PYENV_ROOT" "$NVM_DIR" "$CARGO_HOME" "$RUSTUP_HOME" "$MISE_DATA_DIR" "$MISE_CONFIG_DIR" "$MISE_CACHE_DIR" "$MISE_STATE_DIR" "$PIPX_HOME" /workspace && sudo -E -H -u "$CODEX_USER" bash -lc '/opt/codex/setup_universal.sh && codex --version && opencode --version && code --version && code tunnel --help >/dev/null && goose --version && goosed --version && python3 --version && rustc --version && go version' # buildkit
COPY entrypoint.sh /opt/entrypoint.sh # buildkit
RUN |47 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=1 INSTALL_OPENCODE_CLI=1 INSTALL_GOOSE=1 INSTALL_FORGEJO_CLI=1 INSTALL_BUN=1 INSTALL_JAVA=0 INSTALL_SWIFT=0 INSTALL_RUST=1 INSTALL_RUBY=0 INSTALL_CPP_TOOLS=1 INSTALL_BAZEL=0 INSTALL_GO=1 INSTALL_PHP=0 INSTALL_ELIXIR=0 CODEX_UID=1000 CODEX_GID=1000 FORGEJO_CLI_VERSION=0.5.0 PYTHON_VERSIONS=3.14 NVM_VERSION=v0.40.2 NODE_VERSIONS=24 NODE_VERSION=24 CODEX_CLI_PACKAGE=@openai/codex OPENCODE_CLI_VERSION=1.15.5 BUN_VERSION=1.2.14 GRADLE_VERSION=8.14 MAVEN_VERSION=3.9.10 AMD_JAVA_VERSIONS=21 ARM_JAVA_VERSIONS=21 SWIFT_VERSIONS=6.2 RUST_VERSIONS=1.95.0 GOOSE_VERSION=v1.35.0 RUBY_VERSIONS=3.4.4 BAZELISK_VERSION=v1.26.0 GO_VERSIONS=1.25.1 GOLANG_CI_LINT_VERSION=2.1.6 PHP_VERSIONS=8.5 ERLANG_VERSION=27.1.2 ELIXIR_VERSION=1.18.3 INSTALL_VSCODE_CLI=1 VSCODE_CLI_VERSION=latest VSCODE_CLI_QUALITY=stable /bin/sh -c chmod +x /opt/entrypoint.sh # buildkit
USER codex
WORKDIR /workspace
ENTRYPOINT ["/opt/entrypoint.sh"]

Labels

Key Value
org.opencontainers.image.version 24.04
Details
Container
2026-05-22 21:07:36 +00:00
2
OCI / Docker
linux/amd64
2.6 GiB
Versions (17) View all
local-build 2026-06-05
latest 2026-06-05
buildcache 2026-06-02