40 lines · plain
1#===- llvm/utils/docker/example/build/Dockerfile -------------------------===//2#3# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4# See https://llvm.org/LICENSE.txt for license information.5# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6#7#===----------------------------------------------------------------------===//8# This is an example Dockerfile to build an image that compiles clang.9# Replace FIXMEs to prepare your own image.10 11# Stage 1. Check out LLVM source code and run the build.12# FIXME: Replace 'ubuntu' with your base image13FROM docker.io/ubuntu AS builder14# FIXME: Change maintainer name15LABEL maintainer="Maintainer <maintainer@email>"16# FIXME: Install llvm/clang build dependencies here. Including compiler to17# build stage1, cmake, subversion, ninja, etc.18 19ADD checksums /tmp/checksums20ADD scripts /tmp/scripts21 22# Checkout the source code.23ARG checkout_args24RUN /tmp/scripts/checkout.sh ${checkout_args}25# Run the build. Results of the build will be available at /tmp/clang-install/.26ARG buildscript_args27RUN /tmp/scripts/build_install_llvm.sh --to /tmp/clang-install ${buildscript_args}28 29 30# Stage 2. Produce a minimal release image with build results.31# FIXME: Replace 'ubuntu' with your base image.32FROM docker.io/ubuntu33# FIXME: Change maintainer name.34LABEL maintainer="Maintainer <maintainer@email>"35# FIXME: Install all packages you want to have in your release container.36# A minimal useful installation should include at least libstdc++ and binutils.37 38# Copy build results of stage 1 to /usr/local.39COPY --from=builder /tmp/clang-install/ /usr/local/40