Skip to content

Commit f492bb9

Browse files
committed
get v8js to build
1 parent 545bb7a commit f492bb9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+2374
-6110
lines changed

Dockerfile

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,36 @@ RUN cd /tmp \
1919
mcrypt pwgen language-pack-en-base libicu-dev g++ cpp libglib2.0-dev incron libcouchbase-dev libcouchbase2-libevent \
2020
libc6 libcurl3 libgcc1 libgssapi-krb5-2 liblttng-ust0 libssl1.0.0 libstdc++6 libunwind8 libuuid1 zlib1g \
2121
php-pear php-xml php7.3-dev php7.3-xml php7.2-dev php7.2-xml php7.1-dev php7.1-xml \
22-
&& rsync --update -ahp --progress /opt/libv8-6.8/ /usr/local/ \
22+
&& rsync --update -ahp --progress /opt/libv8-7.4/ /usr/local/ \
2323
&& systemctl disable incron \
2424
&& echo 'root' >> /etc/incron.allow \
2525
&& dpkg --configure -a \
2626
&& pecl channel-update pecl.php.net \
2727
&& /usr/bin/switch-php.sh "7.1" \
28-
&& pecl -d php_suffix=7.1 install -f --alldeps pcs igbinary couchbase imagick v8 v8js \
28+
&& pecl -d php_suffix=7.1 install -f --alldeps pcs igbinary couchbase imagick \
29+
&& git clone https://github.com/phpv8/v8js.git /tmp/v8js \
30+
&& cd /tmp/v8js \
31+
&& git checkout php7 && phpize7.1 \
32+
&& ./configure LDFLAGS="-lstdc++" --with-v8js=/opt/libv8-7.4 \
33+
&& make all test install \
2934
&& mkdir -p /mytmp/20160303 && rsync -ahp /usr/lib/php/20160303/ /mytmp/20160303/ \
30-
&& rm -rf /tmp/* \
31-
&& /usr/bin/switch-php.sh "7.3" \
32-
&& pecl -d php_suffix=7.3 install -f --alldeps pcs igbinary couchbase imagick v8 \
35+
&& rm -rf /tmp/*
36+
RUN /usr/bin/switch-php.sh "7.3" \
37+
&& pecl -d php_suffix=7.3 install -f --alldeps pcs igbinary couchbase imagick \
38+
&& git clone https://github.com/phpv8/v8js.git /tmp/v8js \
39+
&& cd /tmp/v8js \
40+
&& git checkout php7 && phpize7.3 \
41+
&& ./configure LDFLAGS="-lstdc++" --with-v8js=/opt/libv8-7.4 \
42+
&& make all test install \
3343
&& mkdir -p /mytmp/20180731 && rsync -ahp /usr/lib/php/20180731/ /mytmp/20180731/ \
34-
&& rm -rf /tmp/* \
35-
&& /usr/bin/switch-php.sh "7.2" \
36-
&& pecl -d php_suffix=7.2 install -f --alldeps pcs igbinary couchbase imagick v8 v8js \
44+
&& rm -rf /tmp/*
45+
RUN /usr/bin/switch-php.sh "7.2" \
46+
&& pecl -d php_suffix=7.2 install -f --alldeps pcs igbinary couchbase imagick \
47+
&& git clone https://github.com/phpv8/v8js.git /tmp/v8js \
48+
&& cd /tmp/v8js \
49+
&& git checkout php7 && phpize7.2 \
50+
&& ./configure LDFLAGS="-lstdc++" --with-v8js=/opt/libv8-7.4 \
51+
&& make all test install \
3752
&& rsync -ahp /mytmp/20160303/ /usr/lib/php/20160303/ \
3853
&& rsync -ahp /mytmp/20180731/ /usr/lib/php/20180731/ \
3954
&& rm -rf /mytmp \

FULL.md

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Because full build of v8 takes too long causing docker hub to cancel build, we h
33

44
```
55
FROM phusion/baseimage:0.10.2 as v8builder
6-
ENV V8_VERSION=6.8.275.32
6+
ENV V8_VERSION=7.4.288.21
77
RUN apt-get update && \
88
apt-get install -y \
99
build-essential \
@@ -12,27 +12,46 @@ RUN apt-get update && \
1212
libglib2.0-dev \
1313
libxml2 \
1414
python && \
15-
cd /tmp && \
16-
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git && \
17-
export PATH=`pwd`/depot_tools:"$PATH" && \
18-
fetch v8 && \
19-
cd v8 && \
20-
git checkout $V8_VERSION && \
21-
gclient sync && \
22-
tools/dev/v8gen.py -vv x64.release -- is_component_build=true && \
23-
ninja -C out.gn/x64.release/
15+
&& cd /tmp \
16+
\
17+
&& git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --progress --verbose \
18+
&& export PATH="$PATH:/tmp/depot_tools" \
19+
\
20+
&& fetch v8 \
21+
&& cd v8 \
22+
&& git checkout 7.4.195 \
23+
&& gclient sync \
24+
\
25+
&& tools/dev/v8gen.py -vv x64.release -- \
26+
binutils_path=\"/usr/bin\" \
27+
target_os=\"linux\" \
28+
target_cpu=\"x64\" \
29+
v8_target_cpu=\"x64\" \
30+
v8_use_external_startup_data=false \
31+
is_official_build=true \
32+
is_component_build=true \
33+
is_cfi=false \
34+
is_clang=false \
35+
use_custom_libcxx=false \
36+
use_sysroot=false \
37+
use_gold=false \
38+
use_allocator_shim=false \
39+
treat_warnings_as_errors=false \
40+
symbol_level=0 \
41+
\
42+
&& ninja -C out.gn/x64.release/
2443
2544
FROM phusion/baseimage:0.10.2
2645
LABEL maintainer="noogen <[email protected]>"
2746
ENV DEBIAN_FRONTEND=noninteractive \
2847
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 TERM=xterm container=docker
29-
COPY --from=v8builder /tmp/v8/out.gn/x64.release/lib*.so /opt/libv8-6.8/lib/
30-
COPY --from=v8builder /tmp/v8/out.gn/x64.release/*_blob.bin /opt/libv8-6.8/lib/
31-
COPY --from=v8builder /tmp/v8/out.gn/x64.release/icudtl.dat /opt/libv8-6.8/lib/
32-
COPY --from=v8builder /tmp/v8/include /opt/libv8-6.8/include
48+
COPY --from=v8builder /tmp/v8/out.gn/x64.release/lib*.so /opt/libv8-7.4/lib/
49+
COPY --from=v8builder /tmp/v8/out.gn/x64.release/*_blob.bin /opt/libv8-7.4/lib/
50+
COPY --from=v8builder /tmp/v8/out.gn/x64.release/icudtl.dat /opt/libv8-7.4/lib/
51+
COPY --from=v8builder /tmp/v8/include /opt/libv8-7.4/include
3352
COPY rootfs/. /
3453
RUN cd /tmp \
3554
# install rsync and other things, and before install v8js push the lib
36-
&& rsync --update -ahp --progress /opt/libv8-6.8/ /usr/local/ \
55+
&& rsync --update -ahp --progress /opt/libv8-7.4/ /usr/local/ \
3756
# additional things
3857
```

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ For convienience, sshd is enabled by default; just don't expose docker port 22 i
1717
4. couchbase and couchdb
1818

1919
## Note
20+
1.4.0 - removed v8 now that we can build v8js in all versions of php
2021
1.3.0 - add php 7.3 build. Everything works except pecl v8js for php7.3 build. Note: Use the alternative pecl v8 module for php7.3 if you need v8 for while waiting for php7.3 v8js pecl updates.
2122

2223
1.2.1 - update v8js build. Remove things that can be defer later.

rootfs/opt/libv8-6.8/include/PRESUBMIT.py

Lines changed: 0 additions & 29 deletions
This file was deleted.

rootfs/opt/libv8-6.8/lib/libc++.so

-1.05 MB
Binary file not shown.
-3.03 MB
Binary file not shown.
-1.88 MB
Binary file not shown.

rootfs/opt/libv8-6.8/lib/libv8.so

-13.8 MB
Binary file not shown.
-151 KB
Binary file not shown.
-113 KB
Binary file not shown.

0 commit comments

Comments
 (0)