mirror of
https://github.com/openai/codex.git
synced 2026-05-28 06:55:01 +00:00
## Summary - Bump the workspace Rust toolchain from `1.93.0` to `1.95.0` across Cargo, Bazel, CI, release workflows, devcontainers, and the Codex environment config. - Refresh `MODULE.bazel.lock` so the Bazel Rust toolchain artifacts match the new version. - Leave purpose-specific toolchains unchanged, including the `argument-comment-lint` nightly and the upstream `rusty_v8` `1.91.0` build pin. - Includes fixes for new lints from `just fix` and a few codex-authored fixes for lints without a suggestion.
83 lines
2.6 KiB
Docker
83 lines
2.6 KiB
Docker
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
|
|
|
|
ARG TZ
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
ARG NODE_MAJOR=22
|
|
ARG RUST_TOOLCHAIN=1.95.0
|
|
# Keep this in sync with .devcontainer/codex-install/package.json and pnpm-lock.yaml.
|
|
ARG CODEX_NPM_VERSION=0.121.0
|
|
|
|
ENV TZ="$TZ"
|
|
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
|
|
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
|
|
# Devcontainers run as a non-root user, so enable bubblewrap's setuid mode.
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
curl \
|
|
git \
|
|
ca-certificates \
|
|
pkg-config \
|
|
clang \
|
|
musl-tools \
|
|
libssl-dev \
|
|
libsqlite3-dev \
|
|
just \
|
|
python3 \
|
|
python3-pip \
|
|
jq \
|
|
less \
|
|
man-db \
|
|
unzip \
|
|
ripgrep \
|
|
fzf \
|
|
fd-find \
|
|
zsh \
|
|
dnsutils \
|
|
iproute2 \
|
|
ipset \
|
|
iptables \
|
|
aggregate \
|
|
bubblewrap \
|
|
&& chmod u+s /usr/bin/bwrap \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY .devcontainer/codex-install/package.json \
|
|
.devcontainer/codex-install/pnpm-lock.yaml \
|
|
.devcontainer/codex-install/pnpm-workspace.yaml \
|
|
/opt/codex-install/
|
|
|
|
RUN curl -fsSL "https://deb.nodesource.com/setup_${NODE_MAJOR}.x" | bash - \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends nodejs \
|
|
&& test "$(node -p "require('/opt/codex-install/package.json').dependencies['@openai/codex']")" = "${CODEX_NPM_VERSION}" \
|
|
&& cd /opt/codex-install \
|
|
&& corepack pnpm install --prod --frozen-lockfile \
|
|
&& ln -s /opt/codex-install/node_modules/.bin/codex /usr/local/bin/codex \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY .devcontainer/init-firewall.sh /usr/local/bin/init-firewall.sh
|
|
COPY .devcontainer/post_install.py /opt/post_install.py
|
|
COPY .devcontainer/post-start.sh /opt/post_start.sh
|
|
|
|
RUN chmod 500 /usr/local/bin/init-firewall.sh \
|
|
&& chmod 755 /opt/post_start.sh \
|
|
&& chmod 644 /opt/post_install.py \
|
|
&& chown vscode:vscode /opt/post_install.py
|
|
|
|
RUN install -d -m 0775 -o vscode -g vscode /commandhistory /workspace \
|
|
&& touch /commandhistory/.bash_history /commandhistory/.zsh_history \
|
|
&& chown vscode:vscode /commandhistory/.bash_history /commandhistory/.zsh_history
|
|
|
|
USER vscode
|
|
ENV PATH="/home/vscode/.cargo/bin:${PATH}"
|
|
WORKDIR /workspace
|
|
|
|
RUN curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain "${RUST_TOOLCHAIN}" \
|
|
&& rustup component add clippy rustfmt rust-src \
|
|
&& rustup target add x86_64-unknown-linux-musl aarch64-unknown-linux-musl
|