codex-universal (local-build-ea01f7af0fb2)
Published 2026-05-19 16:02:46 +00:00 by makistsantekidis
Installation
docker pull forgejo.chonk.maquies.me/makistsantekidis/codex-universal:local-build-ea01f7af0fb2sha256:6fd3c75f21ddb67640073c2f55c2ac199112651ee707a1b4d05ba5e14415b91fImage 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_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 |20 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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-* 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.* 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.* 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.* libuuid1=2.39.* libxml2-dev=2.9.* make=4.3-* netcat-openbsd=1.226-* openssh-client=1:9.6p1-* pkg-config=1.8.* 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 |21 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 |21 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 |21 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 |21 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 |22 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 |22 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 |25 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 |26 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 BUN_VERSION=1.2.14 |
| RUN |27 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 |31 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 |32 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 |33 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 RUBY_VERSIONS=3.4.4 |
| RUN |34 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 |34 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 |35 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 |37 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 |38 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 |40 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 |
| COPY setup_universal.sh /opt/codex/setup_universal.sh # buildkit |
| RUN |40 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 chmod +x /opt/codex/setup_universal.sh # buildkit |
| COPY verify.sh /opt/verify.sh # buildkit |
| RUN |40 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 chmod +x /opt/verify.sh && INSTALL_LLVM="$INSTALL_LLVM" INSTALL_PYTHON="$INSTALL_PYTHON" INSTALL_NODE="$INSTALL_NODE" INSTALL_CODEX_CLI="$INSTALL_CODEX_CLI" 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 |40 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 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 && python3 --version && rustc --version && go version' # buildkit |
| COPY entrypoint.sh /opt/entrypoint.sh # buildkit |
| RUN |40 TARGETOS=linux TARGETARCH=amd64 IMAGE_PROFILE=slim INSTALL_LLVM=1 INSTALL_PYTHON=1 INSTALL_NODE=1 INSTALL_CODEX_CLI=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 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 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 chmod +x /opt/entrypoint.sh # buildkit |
| USER codex |
| WORKDIR /workspace |
| ENTRYPOINT ["/opt/entrypoint.sh"] |
Labels
| Key | Value |
|---|---|
| org.opencontainers.image.version | 24.04 |
Details
2026-05-19 16:02:46 +00:00
Versions (17)
View all
Container
1
OCI / Docker
linux/amd64
1.7 GiB
local-build-08ab5b19333d
2026-06-05
local-build
2026-06-05
latest
2026-06-05
buildcache
2026-06-02
local-build-e5b8bb4a964a
2026-05-31