Updated docker build

This commit is contained in:
Y. T. Chung
2017-12-02 23:31:46 +08:00
parent ac8de69b04
commit 83a022099b
2 changed files with 42 additions and 16 deletions
+13 -5
View File
@@ -1,13 +1,21 @@
FROM ekidd/rust-musl-builder
#ENV HTTP_PROXY="http://192.168.0.104:8118"
#ENV HTTPS_PROXY="http://192.168.0.104:8118"
ENV SODIUM_VERS="1.0.15"
# Build a static copy of libsodium.
RUN VERS=1.0.15 && \
cd /home/rust/libs && \
curl -LO https://download.libsodium.org/libsodium/releases/libsodium-$VERS.tar.gz && \
tar xzf libsodium-$VERS.tar.gz && cd libsodium-$VERS && \
RUN cd /home/rust/libs && \
curl -LO https://download.libsodium.org/libsodium/releases/libsodium-$SODIUM_VERS.tar.gz && \
tar xzf libsodium-$SODIUM_VERS.tar.gz && cd libsodium-$SODIUM_VERS && \
CC=musl-gcc ./configure --prefix=/usr/local/musl && \
make && sudo make install && \
cd .. && rm -rf libsodium-$VERS.tar.gz libsodium-$VERS
cd .. && rm -rf libsodium-$SODIUM_VERS.tar.gz libsodium-$SODIUM_VERS
#RUN rustup install nightly
#RUN rustup default nightly
#RUN rustup target add x86_64-unknown-linux-musl
ENV SODIUM_STATIC=yes
ENV SODIUM_LIB_DIR=/usr/local/musl/lib
+29 -11
View File
@@ -1,5 +1,23 @@
#!/bin/sh
VERSION="latest"
ENABLE_GZ=false
while getopts "v:gh" opt; do
case $opt in
v)
VERSION=$OPTARG
;;
g)
ENABLE_GZ=true
;;
h|\?)
echo "$0 [-v VERSION] [-g] [-h]"
exit 0
;;
esac
done
IMAGE='shadowsocks-rust:latest'
CUR_DIR=$( cd $( dirname $0 ) && pwd )
@@ -9,6 +27,8 @@ SRC_PATH="/home/rust/src"
CARGO_TARGET_DIR="${SRC_PATH}/build/target"
LOCAL_USER=$( id -u "$USER" ):$( id -g "$USER" )
TARGET_NAME="x86_64-unknown-linux-musl"
docker run \
-e CARGO_TARGET_DIR="${CARGO_TARGET_DIR}" \
-v "${CUR_DIR}"/..:"$SRC_PATH" \
@@ -17,25 +37,23 @@ docker run \
/bin/bash -c \
"sudo mkdir -p $CARGO_TARGET_DIR \
&& sudo chown -R rust:rust $CARGO_TARGET_DIR \
&& cargo build --release \
&& cargo build --release --target $TARGET_NAME \
&& sudo chown -R $LOCAL_USER $CARGO_TARGET_DIR"
TARGET_NAME="x86_64-unknown-linux-musl"
TARGET_DIR="$CUR_DIR/target/$TARGET_NAME/release/"
cd "$TARGET_DIR"
VERSION=$1
if [[ -z "$VERSION" ]]; then
VERSION="latest"
fi
## Disable OS X ACL file
export COPYFILE_DISABLE=1
tar -czf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.gz" \
"sslocal" \
"ssserver" \
"ssurl"
if $ENABLE_GZ; then
tar -czf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.gz" \
"sslocal" \
"ssserver" \
"ssurl"
fi
tar -cJf "${CUR_DIR}/shadowsocks-${VERSION}-release.${TARGET_NAME}.tar.xz" \
"sslocal" \
"ssserver" \