mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-28 15:58:57 -04:00

Summary: This is a small refactoring to extract the svn checkout code from the build script used inside the docker image. This would give more flexibility if more than a single invocation of cmake is needed inside the docker image. User-facing interface (build_docker_image.sh) hasn't changed, only the internal scripts running inside the build container are affected. Reviewers: ioeric Reviewed By: ioeric Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D45868 llvm-svn: 330412
41 lines
1.5 KiB
Docker
41 lines
1.5 KiB
Docker
#===- llvm/utils/docker/example/build/Dockerfile -------------------------===//
|
|
#
|
|
# The LLVM Compiler Infrastructure
|
|
#
|
|
# This file is distributed under the University of Illinois Open Source
|
|
# License. See LICENSE.TXT for details.
|
|
#
|
|
#===----------------------------------------------------------------------===//
|
|
# This is an example Dockerfile to build an image that compiles clang.
|
|
# Replace FIXMEs to prepare your own image.
|
|
|
|
# Stage 1. Check out LLVM source code and run the build.
|
|
# FIXME: Replace 'ubuntu' with your base image
|
|
FROM ubuntu as builder
|
|
# FIXME: Change maintainer name
|
|
LABEL maintainer "Maintainer <maintainer@email>"
|
|
# FIXME: Install llvm/clang build dependencies here. Including compiler to
|
|
# build stage1, cmake, subversion, ninja, etc.
|
|
|
|
ADD checksums /tmp/checksums
|
|
ADD scripts /tmp/scripts
|
|
|
|
# Checkout the source code.
|
|
ARG checkout_args
|
|
RUN /tmp/scripts/checkout.sh ${checkout_args}
|
|
# Run the build. Results of the build will be available at /tmp/clang-install/.
|
|
ARG buildscript_args
|
|
RUN /tmp/scripts/build_install_llvm.sh --to /tmp/clang-install ${buildscript_args}
|
|
|
|
|
|
# Stage 2. Produce a minimal release image with build results.
|
|
# FIXME: Replace 'ubuntu' with your base image.
|
|
FROM ubuntu
|
|
# FIXME: Change maintainer name.
|
|
LABEL maintainer "Maintainer <maintainer@email>"
|
|
# FIXME: Install all packages you want to have in your release container.
|
|
# A minimal useful installation should include at least libstdc++ and binutils.
|
|
|
|
# Copy build results of stage 1 to /usr/local.
|
|
COPY --from=builder /tmp/clang-install/ /usr/local/
|