1
- FROM ubuntu:16 .04
1
+ FROM ubuntu:20 .04
2
2
3
3
# The Rust toolchain to use when building our image
4
4
ARG TOOLCHAIN=stable
5
5
ARG TARGET=x86_64-unknown-linux-musl
6
6
ARG OPENSSL_ARCH=linux-x86_64
7
+ ARG RUST_MUSL_MAKE_VER=0.9.9
8
+ ARG RUST_MUSL_MAKE_CONFIG=config.mak
7
9
10
+ ENV DEBIAN_FRONTEND=noninteractive
8
11
ENV RUST_MUSL_CROSS_TARGET=$TARGET
9
12
10
13
# Make sure we have basic dev tools for building C libraries. Our goal
@@ -26,15 +29,14 @@ RUN apt-get update && \
26
29
apt-get clean && rm -rf /var/lib/apt/lists/*
27
30
28
31
# Install cross-signed Let's Encrypt R3 CA certificate
29
- ADD lets-encrypt-r3-cross-signed.crt /usr/local/share/ca-certificates
32
+ COPY lets-encrypt-r3-cross-signed.crt /usr/local/share/ca-certificates
30
33
RUN update-ca-certificates
31
34
32
- ADD config.mak /tmp/config.mak
33
- RUN cd /tmp && \
34
- curl -Lsq -o musl-cross-make.zip https://github.com/richfelker/musl-cross-make/archive/v0.9.8.zip && \
35
+ COPY $RUST_MUSL_MAKE_CONFIG /tmp/config.mak
36
+ RUN cd /tmp && curl -Lsq -o musl-cross-make.zip https://github.com/richfelker/musl-cross-make/archive/v$RUST_MUSL_MAKE_VER.zip && \
35
37
unzip -q musl-cross-make.zip && \
36
38
rm musl-cross-make.zip && \
37
- mv musl-cross-make-0.9.8 musl-cross-make && \
39
+ mv musl-cross-make-$RUST_MUSL_MAKE_VER musl-cross-make && \
38
40
cp /tmp/config.mak /tmp/musl-cross-make/config.mak && \
39
41
cd /tmp/musl-cross-make && \
40
42
TARGET=$TARGET make install -j 4 > /tmp/musl-cross-make.log && \
@@ -49,7 +51,8 @@ RUN mkdir -p /home/rust/libs /home/rust/src
49
51
ENV PATH=/root/.cargo/bin:/usr/local/musl/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
50
52
ENV TARGET_CC=$TARGET-gcc
51
53
ENV TARGET_CXX=$TARGET-g++
52
- ENV TARGET_C_INCLUDE_PATH=/usr/local/musl/$TARGET/include/
54
+ ENV TARGET_HOME=/usr/local/musl/$TARGET
55
+ ENV TARGET_C_INCLUDE_PATH=$TARGET_HOME/include/
53
56
54
57
# Install our Rust toolchain and the `musl` target. We patch the
55
58
# command-line we pass to the installer so that it won't attempt to
@@ -79,25 +82,29 @@ RUN export CC=$TARGET_CC && \
79
82
echo "$CHECKSUM zlib-$VERS.tar.gz" > checksums.txt && \
80
83
sha256sum -c checksums.txt && \
81
84
tar xzf zlib-$VERS.tar.gz && cd zlib-$VERS && \
82
- ./configure --static --archs="-fPIC" --prefix=/usr/local/musl/$TARGET && \
85
+ ./configure --static --archs="-fPIC" --prefix=$TARGET_HOME && \
83
86
make && sudo make install -j 4 && \
84
- cd .. && rm -rf zlib-$VERS.tar.gz zlib-$VERS checksums.txt && \
87
+ cd .. && rm -rf zlib-$VERS.tar.gz zlib-$VERS checksums.txt
88
+
89
+ RUN export CC=$TARGET_CC && \
90
+ export C_INCLUDE_PATH=$TARGET_C_INCLUDE_PATH && \
91
+ export LD=$TARGET-ld && \
85
92
echo "Building OpenSSL" && \
86
- VERS=1.0.2q && \
87
- CHECKSUM=5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684 && \
93
+ VERS=1.0.2u && \
94
+ CHECKSUM=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16 && \
88
95
curl -sqO https://www.openssl.org/source/openssl-$VERS.tar.gz && \
89
96
echo "$CHECKSUM openssl-$VERS.tar.gz" > checksums.txt && \
90
97
sha256sum -c checksums.txt && \
91
98
tar xzf openssl-$VERS.tar.gz && cd openssl-$VERS && \
92
- ./Configure $OPENSSL_ARCH -fPIC --prefix=/usr/local/musl/$TARGET && \
99
+ ./Configure $OPENSSL_ARCH -fPIC --prefix=$TARGET_HOME && \
93
100
make depend && \
94
- make && sudo make install -j 4 && \
101
+ make && sudo make install && \
95
102
cd .. && rm -rf openssl-$VERS.tar.gz openssl-$VERS checksums.txt
96
103
97
- ENV OPENSSL_DIR=/usr/local/musl/$TARGET / \
98
- OPENSSL_INCLUDE_DIR=/usr/local/musl/$TARGET /include/ \
99
- DEP_OPENSSL_INCLUDE=/usr/local/musl/$TARGET /include/ \
100
- OPENSSL_LIB_DIR=/usr/local/musl/$TARGET /lib/ \
104
+ ENV OPENSSL_DIR=$TARGET_HOME / \
105
+ OPENSSL_INCLUDE_DIR=$TARGET_HOME /include/ \
106
+ DEP_OPENSSL_INCLUDE=$TARGET_HOME /include/ \
107
+ OPENSSL_LIB_DIR=$TARGET_HOME /lib/ \
101
108
OPENSSL_STATIC=1
102
109
103
110
# Remove docs and more stuff not needed in this images to make them smaller
0 commit comments