mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 08:01:05 +01:00
Add ubuntu:22.04 docker images (#1618)
Ubuntu 22.04 base image and examples using github, a copy instruction and volumes. I was using this to run examples on a windows machine since it is more comfortable than switching OS or using the WSL subsystem directly. If this is something that other people would like to have I can add other versions of ubuntu and other linux distributions.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "carbon-lang",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"dockerfile": "../docker/ubuntu2204/base/Dockerfile",
|
||||
"args": {
|
||||
"TAG": "3.5.6"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# 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
|
||||
-->
|
||||
|
||||
ubuntu:22.04
|
||||
|
||||
## Build and run image
|
||||
|
||||
### Build
|
||||
|
||||
Building the base image is required.
|
||||
|
||||
```
|
||||
docker build -t carbon-ubuntu2204-base ./ubuntu2204/base
|
||||
```
|
||||
|
||||
Build image using git repository
|
||||
|
||||
```bash
|
||||
docker build -t carbon-ubuntu2004 ./ubuntu2204/github
|
||||
```
|
||||
|
||||
Build image using copy instruction
|
||||
|
||||
```bash
|
||||
docker build -f ./ubuntu2204/Dockerfile -t carbon-ubuntu2004 ..
|
||||
```
|
||||
|
||||
Run image
|
||||
|
||||
```bash
|
||||
docker run carbon-ubuntu2004
|
||||
```
|
||||
|
||||
Run image using specific file
|
||||
|
||||
```bash
|
||||
docker run carbon-ubuntu2004 bazel run //explorer -- ./explorer/testdata/print/format_only.carbon
|
||||
```
|
||||
|
||||
### Using a mounted volume
|
||||
|
||||
Run from the repository root for PWD.
|
||||
|
||||
```
|
||||
cd ..
|
||||
```
|
||||
|
||||
```bash
|
||||
docker run -w "/carbon-lang" -v "${PWD}:/carbon-lang" "carbon-ubuntu2004-base" bazel run "//explorer" -- "./explorer/testdata/print/format_only.carbon"
|
||||
```
|
||||
@@ -0,0 +1,15 @@
|
||||
# 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 carbon-ubuntu2204-base as carbon-ubuntu2204-build
|
||||
|
||||
COPY . /carbon-lang
|
||||
WORKDIR /carbon-lang
|
||||
|
||||
# Build
|
||||
RUN bazel build //explorer
|
||||
|
||||
FROM carbon-ubuntu2204-build
|
||||
|
||||
CMD ["bazel", "run", "//explorer", "--", "./explorer/testdata/print/format_only.carbon"]
|
||||
@@ -2,7 +2,7 @@
|
||||
# Exceptions. See /LICENSE for license information.
|
||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
|
||||
FROM ubuntu:22.04
|
||||
FROM ubuntu:22.04 as carbon-ubuntu2204-base
|
||||
|
||||
# Install apt tools:
|
||||
# git: Used by VS Code.
|
||||
@@ -21,9 +21,11 @@ RUN apt-get update && \
|
||||
wget
|
||||
|
||||
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
|
||||
|
||||
@@ -32,6 +34,7 @@ RUN wget https://apt.llvm.org/llvm.sh
|
||||
RUN chmod +x llvm.sh
|
||||
RUN ./llvm.sh 15 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-15/bin:${PATH}"
|
||||
@@ -0,0 +1,20 @@
|
||||
# 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 carbon-ubuntu2204-base as carbon-ubuntu2204-github-build
|
||||
|
||||
# Clone git repository
|
||||
RUN git clone https://github.com/carbon-language/carbon-lang
|
||||
|
||||
WORKDIR /carbon-lang
|
||||
|
||||
# Setup pre-commit
|
||||
RUN pre-commit install
|
||||
|
||||
# Build
|
||||
RUN bazel build //explorer
|
||||
|
||||
FROM carbon-ubuntu2204-github-build
|
||||
|
||||
CMD ["bazel", "run", "//explorer", "--", "./explorer/testdata/print/format_only.carbon"]
|
||||
@@ -191,7 +191,7 @@ considering if they fit your workflow.
|
||||
- After following the
|
||||
[installation instructions](https://code.visualstudio.com/docs/remote/containers#_installation),
|
||||
you should be prompted to use Carbon's
|
||||
[devcontainer](/.devcontainer/Dockerfile) with "Reopen in
|
||||
[devcontainer](/.devcontainer/devcontainer.json) with "Reopen in
|
||||
container".
|
||||
|
||||
### Manually building Clang and LLVM (not recommended)
|
||||
|
||||
Reference in New Issue
Block a user