Files
carbon-lang/docker/ubuntu2404/base/Dockerfile
T
Nirmal Patel b69f97d1f3 Fix Devcontainer build errors (#4647)
Devcontainer Dockerfile has been updated to use Ubuntu 24.04 as the
base. Now devcontainer builds without errors. Tested with Podman on
Linux and Docker Desktop on Windows.

To avoid re-downloading and re-compiling whenever the container is
deleted, a named volume is mounted at /home/ubuntu/.cache.

Closes #4065
2024-12-17 23:38:17 +00:00

50 lines
1.5 KiB
Docker

# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
# Exceptions. See /LICENSE for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
FROM ubuntu:24.04 as carbon-ubuntu2404-base
# Install apt tools:
# git: Used by VS Code.
# golang: Used for Bazelisk and Buildifier.
# python3: For Carbon tools.
# gnupg, software-properties-common, wget: For llvm.sh.
# apt-get update and install together per Docker best practice.
RUN apt-get update && \
apt-get install -y \
git \
gnupg \
golang \
python3-pip \
python3 \
software-properties-common \
wget \
nodejs \
npm
ENV PATH="/root/go/bin:${PATH}"
# Bazelisk is used for Carbon builds.
RUN go install github.com/bazelbuild/bazelisk@v1.14.0
RUN ln -s /root/go/bin/bazelisk /root/go/bin/bazel
# Buildifier is used by the Bazel VS Code extension.
RUN go install github.com/bazelbuild/buildtools/buildifier@5.1.0
# Install LLVM from apt.llvm.org.
RUN wget https://apt.llvm.org/llvm.sh
RUN chmod +x llvm.sh
RUN ./llvm.sh 18 all
RUN rm llvm.sh
# Add the lib dir to the PATH. This helps Bazel find clang and VS Code find
# clangd, without version suffixes.
ENV PATH="/usr/lib/llvm-18/bin:${PATH}"
# Update pip and install black and pre-commit.
RUN pip3 install black pre-commit --break-system-packages
# Create .cache directory with proper ownership. We will mount a named volume
# at this location to allow caching of bazel build files.
RUN mkdir /home/ubuntu/.cache && chown -R ubuntu:ubuntu /home/ubuntu/.cache