Alexey Tsvetkov
4 years ago
7 changed files with 160 additions and 0 deletions
@ -0,0 +1,34 @@
|
||||
FROM ubuntu:trusty-20191217 |
||||
|
||||
# Update binutils, g++, gcc |
||||
RUN apt-get update -y && \ |
||||
apt-get install build-essential software-properties-common -y && \ |
||||
add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ |
||||
apt-get update -y && \ |
||||
apt-get install binutils-2.26 && \ |
||||
apt-get install build-essential software-properties-common -y && \ |
||||
apt-get update && \ |
||||
apt-get install gcc-9 g++-9 -y && \ |
||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9 && \ |
||||
update-alternatives --config gcc |
||||
ENV PATH=/usr/lib/binutils-2.26/bin:$PATH |
||||
|
||||
# Install libs & tools |
||||
ENV DEPOT_TOOLS=/usr/depot_tools |
||||
ENV PATH=$DEPOT_TOOLS:$PATH |
||||
RUN apt-get install git python wget -y && \ |
||||
apt-get install fontconfig libfontconfig1-dev libglu1-mesa-dev curl zip -y && \ |
||||
git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' $DEPOT_TOOLS |
||||
|
||||
# Install Java |
||||
ENV JAVA_HOME=/usr/java/11 |
||||
ENV PATH=$JAVA_HOME/bin:$PATH |
||||
RUN JAVA_URL=https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.tar.gz && \ |
||||
JAVA_ARCHIVE=/tmp/jdk.tar.gz && \ |
||||
JAVA_BASE=/usr/java/ && \ |
||||
wget $JAVA_URL --output-document $JAVA_ARCHIVE && \ |
||||
mkdir -p $JAVA_BASE && \ |
||||
tar -xzf $JAVA_ARCHIVE --directory $JAVA_BASE && \ |
||||
find $JAVA_BASE -type d -maxdepth 1 -name "amazon-corretto-11*linux-x64" -exec mv {} $JAVA_HOME \; && \ |
||||
rm $JAVA_ARCHIVE |
||||
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 |
@ -0,0 +1,22 @@
|
||||
### Build image |
||||
|
||||
``` |
||||
docker build -t skiko-build-ubuntu-1404-amd64:latest . |
||||
``` |
||||
|
||||
### Run container |
||||
|
||||
``` |
||||
docker run -it skiko-build-ubuntu-1404-amd64:latest |
||||
``` |
||||
|
||||
* To customize memory constraints, use `-m` argument (e.g. `-m 2G`) |
||||
* To customize number of available CPU cores, use `--cpus` argument (e.g. `--cpus=2`) |
||||
|
||||
### Publish image to Compose repo |
||||
|
||||
``` |
||||
docker login public.registry.jetbrains.space |
||||
docker tag skiko-build-ubuntu-1404-amd64:latest public.registry.jetbrains.space/p/compose/docker/skiko-build-ubuntu-1404-amd64:latest |
||||
docker push public.registry.jetbrains.space/p/compose/docker/skiko-build-ubuntu-1404-amd64:latest |
||||
``` |
@ -0,0 +1,47 @@
|
||||
# escape=` |
||||
|
||||
# Use the latest Windows Server Core image with .NET Framework 4.8. |
||||
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019 |
||||
|
||||
# Restore the default Windows shell for correct batch processing. |
||||
SHELL ["cmd", "/S", "/C"] |
||||
|
||||
# Install MSVC C++ compiler, CMake, and MSBuild. |
||||
ADD https://aka.ms/vs/16/release/vs_buildtools.exe C:\Temp\vs_buildtools.exe |
||||
ADD https://aka.ms/vs/16/release/channel C:\Temp\VisualStudio.chman |
||||
RUN C:\Temp\vs_buildtools.exe ` |
||||
--quiet --wait --norestart --nocache ` |
||||
--installPath C:\BuildTools ` |
||||
--channelUri C:\Temp\VisualStudio.chman ` |
||||
--installChannelUri C:\Temp\VisualStudio.chman ` |
||||
--add Microsoft.VisualStudio.Workload.VCTools;includeRecommended ` |
||||
--add Microsoft.Component.MSBuild ` |
||||
|| IF "%ERRORLEVEL%"=="3010" EXIT 0 |
||||
|
||||
RUN setx /M SKIKO_VSBT_PATH "C:\BuildTools" |
||||
|
||||
# Install Java |
||||
COPY install_jdk.ps1 C:\TEMP\install_jdk.ps1 |
||||
RUN powershell C:\TEMP\install_jdk.ps1 -url https://corretto.aws/downloads/latest/amazon-corretto-11-x64-windows-jdk.zip -targetDir C:\jdk11 |
||||
RUN setx /M PATH "C:\jdk11\bin;%PATH%" |
||||
RUN setx /M JAVA_HOME C:\jdk11 |
||||
|
||||
ENV PYTHON_VERSION=2.7.18 |
||||
ENV PYTHON_RELEASE=2.7.18 |
||||
ADD install_python.ps1 C:\TEMP\install_python.ps1 |
||||
RUN powershell C:\TEMP\install_python.ps1 |
||||
|
||||
ADD https://bintray.com/jetbrains/skija/download_file?file_path=zip.zip C:\TEMP\zip.zip |
||||
RUN tar -xf C:\TEMP\zip.zip |
||||
RUN setx /M PATH "C:\zip;%PATH%" |
||||
|
||||
COPY install_git.ps1 C:\TEMP\install_git.ps1 |
||||
RUN powershell C:\TEMP\install_git.ps1 |
||||
RUN setx /M PATH "C:\Git\cmd;C:\Git\bin;C:\Git\usr\bin;%PATH%" |
||||
|
||||
RUN git.exe clone "https://chromium.googlesource.com/chromium/tools/depot_tools.git" "C:\depot_tools" |
||||
RUN setx /M PATH "C:\depot_tools;%PATH%" |
||||
|
||||
# Define the entry point for the docker container. |
||||
# This entry point starts the developer command prompt and launches the PowerShell shell. |
||||
ENTRYPOINT ["C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"] |
@ -0,0 +1,22 @@
|
||||
### Build image |
||||
|
||||
``` |
||||
docker build -t skiko-build-windows-ltsc2019-amd64:latest -m 2G . |
||||
``` |
||||
|
||||
### Run container |
||||
|
||||
``` |
||||
docker run -it skiko-build-windows-ltsc2019-amd64:latest |
||||
``` |
||||
|
||||
* To customize memory constraints, use `-m` argument (e.g. `-m 2G`) |
||||
* To customize number of available CPU cores, use `--cpus` argument (e.g. `--cpus=2`) |
||||
|
||||
### Publish image to Compose repo |
||||
|
||||
``` |
||||
docker login public.registry.jetbrains.space |
||||
docker tag skiko-build-windows-ltsc2019-amd64:latest public.registry.jetbrains.space/p/compose/docker/skiko-build-windows-ltsc2019-amd64:latest |
||||
docker push public.registry.jetbrains.space/p/compose/docker/skiko-build-windows-ltsc2019-amd64:latest |
||||
``` |
@ -0,0 +1,16 @@
|
||||
# Install 7zip |
||||
Write-Host 'Downloading 7z...' |
||||
$7zinstaller='C:\TEMP\7zsetup.exe' |
||||
(New-Object System.Net.WebClient).DownloadFile('https://www.7-zip.org/a/7z1900-x64.exe', $7zinstaller) |
||||
Write-Host 'Installing 7z...' |
||||
Start-Process $7zinstaller -ArgumentList '/S' -Wait |
||||
Remove-Item $7zinstaller -Force |
||||
$env:Path += ';C:\Program Files\7-Zip\' |
||||
|
||||
# Install Git |
||||
Write-Host 'Downloading Git...' |
||||
$gitarchive='C:\TEMP\portableGit.7z.exe' |
||||
(New-Object System.Net.WebClient).DownloadFile('https://github.com/git-for-windows/git/releases/download/v2.28.0.windows.1/PortableGit-2.28.0-64-bit.7z.exe', $gitarchive) |
||||
Write-Host 'Installing Git...' |
||||
7z.exe x $gitarchive -o'C:\Git' |
||||
Remove-Item $gitarchive -Force |
@ -0,0 +1,11 @@
|
||||
param ($url, $targetDir) |
||||
$archiveFile="C:\TEMP\corretto-11-jdk.zip" |
||||
Write-Host ('Downloading {0} ...' -f $url) |
||||
(New-Object System.Net.WebClient).DownloadFile($url, $archiveFile) |
||||
Write-Host 'Installing ...' |
||||
tar -xf $archiveFile |
||||
# rename an unpacked directory like 'jdk11.0.10' to 'jdk11' |
||||
$jdkDir=Get-ChildItem -Filter "jdk11.*"|Select-Object -First 1 |
||||
Rename-Item -Path $jdkDir.FullName -NewName $targetDir |
||||
Remove-Item $archiveFile -Force |
||||
Write-Host 'Installation is complete.' |
@ -0,0 +1,8 @@
|
||||
$url = ('https://www.python.org/ftp/python/{0}/python-{1}.amd64.msi' -f $env:PYTHON_RELEASE, $env:PYTHON_VERSION) |
||||
$installer='C:\TEMP\python.msi' |
||||
Write-Host ('Downloading {0} ...' -f $url) |
||||
(New-Object System.Net.WebClient).DownloadFile($url, $installer) |
||||
Write-Host 'Installing ...' |
||||
Start-Process msiexec -Wait -ArgumentList @('/i', $installer, '/quiet', '/qn', 'TARGETDIR=C:\Python', 'ALLUSERS=1', 'ADDLOCAL=DefaultFeature,Extensions,TclTk,Tools,PrependPath') |
||||
Remove-Item $installer -Force |
||||
Write-Host 'Python installation is complete.' |
Loading…
Reference in new issue