From c82d7fe1df0a7deb0e6198226f7a1c0dd66b5326 Mon Sep 17 00:00:00 2001 From: "Ivan.Povetkin" Date: Wed, 1 Feb 2023 17:21:27 +0000 Subject: [PATCH] IJI-629: Dockerized Build Environment for Community Merge-request: IJ-MR-101927 Merged-by: Ivan Povetkin GitOrigin-RevId: d5130c6764e46e5a2823f220e83bbd558291b75c --- Dockerfile | 31 +++++++++++++++++++++++++++++++ README.md | 4 ++++ 2 files changed, 35 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000000..24dd3b2bc12f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +# syntax=docker/dockerfile:1 +FROM ubuntu:20.04 AS build_env +LABEL Description="Community Build Environment" +RUN apt-get update && \ + apt-get install -y wget \ + tar \ + p7zip-full \ + libfreetype6 \ + fontconfig \ + zip \ + unzip \ + libgl1-mesa-glx \ + && rm -rf /var/lib/apt/lists/* +# Maven cache to reuse +VOLUME /root/.m2 +# Community sources root +VOLUME /community +WORKDIR /community +ENTRYPOINT ["/bin/sh", "-c"] +CMD ["./installers.cmd"] + +FROM build_env AS build_env_with_docker +LABEL Description="Community Build Environment with Docker (required to build additional tools like Repair utility)" +RUN apt-get update && \ + apt-get install -y docker.io \ + && rm -rf /var/lib/apt/lists/* +COPY --from=docker/buildx-bin:latest /buildx /usr/libexec/docker/cli-plugins/docker-buildx +RUN docker buildx version +# Docker socket +VOLUME /var/run/docker.sock +CMD ["docker system info && ./installers.cmd"] diff --git a/README.md b/README.md index c3829933406b..6a65acf94172 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,10 @@ Examples (`./` should be added only for Linux/macOS): `installers.cmd` is used just to run [OpenSourceCommunityInstallersBuildTarget](build/scripts/OpenSourceCommunityInstallersBuildTarget.kt) from the command line. You may call it directly from IDEA, see run configuration `Build IDEA Community Installers (current OS)` for an example. +#### Dockerized Build Environment +To build installation packages inside a Docker container with preinstalled dependencies and tools, run the following command in `` directory (on Windows, use PowerShell): +`docker run --rm -it -v ${PWD}:/community $(docker build -q . --target build_env)` + ## Running IntelliJ IDEA To run the IntelliJ IDEA built from source, choose **Run | Run** from the main menu. This will use the preconfigured run configuration "**IDEA**".