IJI-629: Dockerized Build Environment for Community

Merge-request: IJ-MR-101927
Merged-by: Ivan Povetkin <Ivan.Povetkin@jetbrains.com>

GitOrigin-RevId: d5130c6764e46e5a2823f220e83bbd558291b75c
This commit is contained in:
Ivan.Povetkin
2023-02-01 17:21:27 +00:00
committed by intellij-monorepo-bot
parent 9a5fd78e40
commit c82d7fe1df
2 changed files with 35 additions and 0 deletions
+31
View File
@@ -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"]
+4
View File
@@ -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 `<IDEA_HOME>` 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**".