Home | History | Annotate | Download | only in example
      1 #===- llvm/utils/docker/example/build/Dockerfile -------------------------===//
      2 #
      3 #                     The LLVM Compiler Infrastructure
      4 #
      5 # This file is distributed under the University of Illinois Open Source
      6 # License. See LICENSE.TXT for details.
      7 #
      8 #===----------------------------------------------------------------------===//
      9 # This is an example Dockerfile to build an image that compiles clang.
     10 # Replace FIXMEs to prepare your own image.
     11 
     12 # Stage 1. Check out LLVM source code and run the build.
     13 # FIXME: Replace 'ubuntu' with your base image
     14 FROM ubuntu as builder
     15 # FIXME: Change maintainer name
     16 LABEL maintainer "Maintainer <maintainer@email>"
     17 # FIXME: Install llvm/clang build dependencies here. Including compiler to
     18 # build stage1, cmake, subversion, ninja, etc.
     19 
     20 ADD checksums /tmp/checksums
     21 ADD scripts /tmp/scripts
     22 
     23 # Checkout the source code.
     24 ARG checkout_args
     25 RUN /tmp/scripts/checkout.sh ${checkout_args}
     26 # Run the build. Results of the build will be available at /tmp/clang-install/.
     27 ARG buildscript_args
     28 RUN /tmp/scripts/build_install_llvm.sh --to /tmp/clang-install ${buildscript_args}
     29 
     30 
     31 # Stage 2. Produce a minimal release image with build results.
     32 # FIXME: Replace 'ubuntu' with your base image.
     33 FROM ubuntu
     34 # FIXME: Change maintainer name.
     35 LABEL maintainer "Maintainer <maintainer@email>"
     36 # FIXME: Install all packages you want to have in your release container.
     37 # A minimal useful installation should include at least libstdc++ and binutils.
     38 
     39 # Copy build results of stage 1 to /usr/local.
     40 COPY --from=builder /tmp/clang-install/ /usr/local/
     41