mirror of
https://github.com/openai/codex.git
synced 2026-04-24 14:45:27 +00:00
48 lines
1.7 KiB
Docker
48 lines
1.7 KiB
Docker
FROM ubuntu:24.04
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
# enable 'universe' because musl-tools & clang live there
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
software-properties-common && \
|
|
add-apt-repository --yes universe
|
|
|
|
# now install build deps
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
build-essential curl git ca-certificates \
|
|
pkg-config clang musl-tools libssl-dev just && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Bazel via Bazelisk (mirrors bazelbuild/setup-bazelisk@v3).
|
|
ARG BAZELISK_VERSION=latest
|
|
RUN arch="$(uname -m)" && \
|
|
case "$arch" in \
|
|
x86_64) arch="amd64" ;; \
|
|
aarch64) arch="arm64" ;; \
|
|
*) echo "Unsupported architecture: $arch" >&2; exit 1 ;; \
|
|
esac && \
|
|
if [ "$BAZELISK_VERSION" = "latest" ]; then \
|
|
url="https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-${arch}"; \
|
|
else \
|
|
url="https://github.com/bazelbuild/bazelisk/releases/download/v${BAZELISK_VERSION}/bazelisk-linux-${arch}"; \
|
|
fi && \
|
|
curl -fsSL "$url" -o /usr/local/bin/bazelisk && \
|
|
chmod +x /usr/local/bin/bazelisk && \
|
|
ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
|
|
|
|
# Install dotslash.
|
|
RUN curl -LSfs "https://github.com/facebook/dotslash/releases/download/v0.5.8/dotslash-ubuntu-22.04.$(uname -m).tar.gz" | tar fxz - -C /usr/local/bin
|
|
|
|
# Ubuntu 24.04 ships with user 'ubuntu' already created with UID 1000.
|
|
USER ubuntu
|
|
|
|
# install Rust + musl target as dev user
|
|
RUN curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal && \
|
|
~/.cargo/bin/rustup target add aarch64-unknown-linux-musl && \
|
|
~/.cargo/bin/rustup component add clippy rustfmt
|
|
|
|
ENV PATH="/home/ubuntu/.cargo/bin:${PATH}"
|
|
|
|
WORKDIR /workspace
|