-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
119 lines (106 loc) · 4.26 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
FROM insideo/uc-linux:buggy
MAINTAINER [email protected]
# setup required build environment
RUN \
mkdir -p /build /control /download /packages && \
opkg update && \
opkg install \
libz-devel libbz2-devel libssl-devel gcc make linux-devel \
unzip zip libgif-devel libalsa-devel libcups-devel libfreetype-devel \
libx11-all-devel curl file gawk sed bash ncurses-base pkg-config patch
# this break here is important; causes us tom come up with bash as the new shell
# download and unpack sources and bootstrap JDK
RUN \
curl -Lk https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u80-unofficial-linux-amd64-image.zip > \
/download/openjdk-1.7.0-u80-unofficial-linux-amd64-image.zip && \
wget -O /download/jdk8-u60-b27.tar.bz2 \
http://hg.openjdk.java.net/jdk8u/jdk8u60/archive/jdk8u60-b27.tar.bz2 && \
for subproject in corba hotspot jaxp jaxws langtools jdk nashorn; do \
wget -O /download/${subproject}.tar.bz2 \
http://hg.openjdk.java.net/jdk8u/jdk8u60/${subproject}/archive/jdk8u60-b27.tar.bz2 ; done && \
cd /build && \
unzip /download/openjdk-*.zip && \
mv openjdk-* openjdk-bootstrap && \
tar xf /download/jdk8-u60-b27.tar.bz2 && \
cd jdk8u60-jdk8u60-b27 && \
for subproject in corba hotspot jaxp jaxws langtools jdk nashorn; do \
tar xf /download/${subproject}.tar.bz2 && \
mv ${subproject}-* ${subproject} ; done
# build package
ADD patches /patches
RUN \
export PATH=/build/openjdk-bootstrap/bin:$PATH && \
cd /build/jdk8u60-jdk8u60-b27 && \
patch -p0 < /patches/unpack200-zlib-fix.patch && \
unset JAVA_HOME && \
sh ./configure \
--with-update-version=60 \
--with-build-number=b27 \
--with-milestone=uc \
--enable-unlimited-crypto \
--with-zlib=system \
--with-giflib=system \
--with-stdc++lib=dynamic \
--build="$(gcc -dumpmachine)" && \
make DEBUG_BINARIES=false all
# stage install files
RUN \
cd /build/jdk8u60-jdk8u60-b27 && \
pre-root /build/java-base-root && \
mkdir -p /build/java-base-root/usr/lib/jvm && \
cp -a build/*/images/j2sdk-image /build/java-base-root/usr/lib/jvm/jdk-8-openjdk-amd64 && \
cp -a build/*/images/j2re-image /build/java-base-root/usr/lib/jvm/jre-8-openjdk-amd64 && \
chown -R root:root /build/java-base-root/usr/lib/jvm && \
post-root /build/java-base-root && \
cd /build/java-base-root/usr/lib/jvm/jdk-8-openjdk-amd64 && \
find . -name '*.diz' -delete && \
rm -f src.zip ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README && \
rm -f jre/ASSEMBLY_EXCEPTION jre/LICENSE jre/THIRD_PARTY_README && \
rm -rf demo man sample && \
for so in $(find . -type f -exec file "{}" \; | grep ELF | sed 's/:.*//' | grep '\.so$'); do ( \
strip --strip-debug "${so}" || true \
); done && \
for so in $(find . -type f -exec file "{}" \; | grep ELF | sed 's/:.*//' | grep -v '\.so$'); do ( \
strip --strip-unneeded "${so}" || true \
); done && \
for cmd in java jjs keytool orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200 ; do ( \
rm -f "/bin/${cmd}" && \
ln -sfv "../jre/bin/${cmd}" "bin/${cmd}" \
); done && \
rm -rf jre/lib/applet && \
cd /build/java-base-root/usr/lib/jvm/jre-8-openjdk-amd64 && \
find . -name '*.diz' -delete && \
rm -f ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README && \
rm -rf man && \
for so in $(find . -type f -exec file "{}" \; | grep ELF | sed 's/:.*//' | grep '\.so$'); do ( \
strip --strip-debug "${so}" || true \
); done && \
for so in $(find . -type f -exec file "{}" \; | grep ELF | sed 's/:.*//' | grep -v '\.so$'); do ( \
strip --strip-unneeded "${so}" || true \
); done && \
rm -rf lib/applet && \
find . -name '*.diz' -delete && \
pre-root /build/jdk-root && \
cd /build/jdk-root && \
mkdir -p usr/lib/jvm && \
mv /build/java-base-root/usr/lib/jvm/jdk-8-openjdk-amd64 usr/lib/jvm/ && \
post-root /build/jdk-root && \
pre-root /build/jre-root && \
cd /build/jre-root && \
mkdir -p usr/lib/jvm && \
mv /build/java-base-root/usr/lib/jvm/jre-8-openjdk-amd64 usr/lib/jvm/ && \
post-root /build/jre-root
# add control files
ADD control /control
# build deb packages
RUN \
make-deb \
/build/openjdk-jdk8-deb \
/build/jdk-root \
/control/openjdk-jdk8 \
/packages/openjdk-jdk8_1.8.0.60-0_amd64.deb && \
make-deb \
/build/openjdk-jre8-deb \
/build/jre-root \
/control/openjdk-jre8 \
/packages/openjdk-jre8_1.8.0.60-0_amd64.deb