react-native-macos/v8-docker-build/Dockerfile

88 строки
2.7 KiB
Docker

############################################################
# Dockerfile to build V8 container images
# Based on Ubuntu
############################################################
# Set the base image to Ubuntu
FROM ubuntu:latest
# File Author / Maintainer
MAINTAINER Example prmis@microsoft.com
################## BEGIN INSTALLATION ######################
# Update Image
RUN apt-get update
RUN apt-get install -y sudo
RUN apt-get install -y apt-utils
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
RUN echo "docker ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
user docker
# Update depedency of V8
RUN sudo apt-get install -y \
lsb-core \
git \
python \
lbzip2 \
curl \
wget \
xz-utils \
zip
RUN sudo echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
WORKDIR /home/docker
# Get depot_tool
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
ENV PATH /home/docker/depot_tools:"$PATH"
RUN echo $PATH
# Fetch V8 code
RUN fetch v8
RUN echo "target_os= ['android']">>.gclient
RUN gclient sync
RUN sudo echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
# Update V8 depedency
RUN echo y | sudo /home/docker/v8/build/install-build-deps-android.sh
WORKDIR /home/docker/v8
ARG CACHEBUST=1
# checkour required V8 Branch
RUN git checkout -b 6.7.1
RUN gclient sync
#ARG CACHEBUST=1
# Generate arguments for specific platform
RUN python ./tools/dev/v8gen.py arm.release -vv
RUN rm out.gn/arm.release/args.gn
# Copy arguments file based on user input file
COPY ./args_arm.gn out.gn/arm.release/args.gn
RUN cp -rf out.gn/arm.release out.gn/x86.release
RUN rm out.gn/x86.release/args.gn
COPY ./args_x86.gn out.gn/x86.release/args.gn
# Display final argument for build
RUN ls -al out.gn/arm.release/
RUN ls -al out.gn/x86.release/
RUN cat out.gn/arm.release/args.gn
RUN cat out.gn/x86.release/args.gn
RUN sudo chmod 777 out.gn/arm.release/args.gn
RUN touch out.gn/arm.release/args.gn
RUN sudo chmod 777 out.gn/x86.release/args.gn
RUN touch out.gn/x86.release/args.gn
# Build the V8 liblary
RUN ninja -C out.gn/arm.release -t clean
RUN ninja -C out.gn/arm.release
RUN ninja -C out.gn/x86.release -t clean
RUN ninja -C out.gn/x86.release
# Copy and prepare zip file of include and build so files
RUN rm -rf target
RUN mkdir -p target
RUN mkdir -p target/arm
RUN mkdir -p target/x86
RUN ls -al out.gn/arm.release
RUN cp -rf out.gn/arm.release/*.so ./target/arm
RUN cp -rf out.gn/x86.release/*.so ./target/x86
RUN cp -rf include ./target
RUN zip -r v8.zip target
RUN ls -al /home/docker/v8/v8.zip
#End of docker Command