From 958d856117ab234e0febe7977fdabfc882240b4e Mon Sep 17 00:00:00 2001 From: kev Date: Wed, 20 Jan 2016 20:51:59 +0800 Subject: [PATCH] add Dockerfile based on alpine --- docker/alpine/Dockerfile | 40 +++++++++++++++ docker/alpine/README.md | 88 ++++++++++++++++++++++++++++++++ docker/alpine/docker-compose.yml | 8 +++ docker/{ => ubuntu}/Dockerfile | 0 docker/{ => ubuntu}/README.md | 0 docker/{ => ubuntu}/entrypoint | 0 6 files changed, 136 insertions(+) create mode 100644 docker/alpine/Dockerfile create mode 100644 docker/alpine/README.md create mode 100644 docker/alpine/docker-compose.yml rename docker/{ => ubuntu}/Dockerfile (100%) rename docker/{ => ubuntu}/README.md (100%) rename docker/{ => ubuntu}/entrypoint (100%) diff --git a/docker/alpine/Dockerfile b/docker/alpine/Dockerfile new file mode 100644 index 00000000..f6e4b8f0 --- /dev/null +++ b/docker/alpine/Dockerfile @@ -0,0 +1,40 @@ +# +# Dockerfile for shadowsocks-libev +# + +FROM alpine +MAINTAINER kev + +ENV SS_VER 2.4.4 +ENV SS_URL https://github.com/shadowsocks/shadowsocks-libev/archive/v$SS_VER.tar.gz +ENV SS_DIR shadowsocks-libev-$SS_VER +ENV SS_DEP autoconf build-base curl libtool linux-headers openssl-dev + +RUN set -ex \ + && apk add --update $SS_DEP \ + && curl -sSL $SS_URL | tar xz \ + && cd $SS_DIR \ + && ./configure \ + && make install \ + && cd .. \ + && rm -rf $SS_DIR \ + && apk del --purge $SS_DEP \ + && rm -rf /var/cache/apk/* + +ENV SERVER_ADDR 0.0.0.0 +ENV SERVER_PORT 8388 +ENV PASSWORD= +ENV METHOD aes-256-cfb +ENV TIMEOUT 300 +ENV DNS_ADDR 8.8.8.8 + +EXPOSE $SERVER_PORT + +CMD ss-server -s $SERVER_ADDR \ + -p $SERVER_PORT \ + -k ${PASSWORD:-$(hostname)} \ + -m $METHOD \ + -t $TIMEOUT \ + --fast-open \ + -d $DNS_ADDR \ + -u diff --git a/docker/alpine/README.md b/docker/alpine/README.md new file mode 100644 index 00000000..9fc736b6 --- /dev/null +++ b/docker/alpine/README.md @@ -0,0 +1,88 @@ +shadowsocks-libev +================= + +[shadowsocks-libev][1] is a lightweight secured socks5 proxy for embedded +devices and low end boxes. It is a port of [shadowsocks][2] created by +@clowwindy maintained by @madeye and @linusyang. + +Suppose we have a VPS running Debian or Ubuntu. +To deploy the service quickly, we can use [docker][3]. + +## Install docker + +``` +$ curl -sSL https://get.docker.com/ | sh +$ docker --version +``` + +## Build docker image + +```bash +$ curl -sSL https://github.com/shadowsocks/shadowsocks-libev/blob/master/docker/alpine/Dockerfile | docker build -t shadowsocks-libev . +$ docker images +``` + +> You can also use a pre-built docker image: [vimagick/shadowsocks-libev][4] ![][5]. + +## Run docker container + +```bash +$ docker run -d -e METHOD=aes-256-cfb -e PASSWORD=9MLSpPmNt -p 8388:8388 --restart always shadowsocks-libev +$ docker ps +``` + +> :warning: Click [here][6] to generate a strong password to protect your server. + +## Use docker-compose to manage (optional) + +It is very handy to use [docker-compose][7] to manage docker containers. +You can download the binary at . + +This is a sample `docker-compose.yml` file. + +```yaml +shadowsocks: + image: shadowsocks-libev + ports: + - "8388:8388" + environment: + - METHOD=aes-256-cfb + - PASSWORD=9MLSpPmNt + restart: always +``` + +It is highly recommended that you setup a directory tree to make things easy to manage. + +```bash +$ mkdir -p ~/fig/shadowsocks/ +$ cd ~/fig/shadowsocks/ +$ curl -sSLO https://github.com/shadowsocks/shadowsocks-libev/blob/master/docker/alpine/docker-compose.yml +$ docker-compose up -d +$ docker-compose ps +``` + +## Finish + +At last, download shadowsocks client [here][8]. +Don't forget to share internet with your friends. + +```yaml +{ + "server": "your-vps-ip", + "server_port": 8388, + "local_address": "0.0.0.0", + "local_port": 1080, + "password": "9MLSpPmNt", + "timeout": 600, + "method": "aes-256-cfb" +} +``` + +[1]: https://github.com/shadowsocks/shadowsocks-libev +[2]: https://shadowsocks.org/en/index.html +[3]: https://github.com/docker/docker +[4]: https://hub.docker.com/r/vimagick/shadowsocks-libev/ +[5]: https://badge.imagelayers.io/vimagick/shadowsocks-libev:latest.svg +[6]: https://duckduckgo.com/?q=password+12&t=ffsb&ia=answer +[7]: https://github.com/docker/compose +[8]: https://shadowsocks.org/en/download/clients.html diff --git a/docker/alpine/docker-compose.yml b/docker/alpine/docker-compose.yml new file mode 100644 index 00000000..19de6761 --- /dev/null +++ b/docker/alpine/docker-compose.yml @@ -0,0 +1,8 @@ +shadowsocks: + image: shadowsocks-libev + ports: + - "8388:8388" + environment: + - METHOD=aes-256-cfb + - PASSWORD=9MLSpPmNt + restart: always diff --git a/docker/Dockerfile b/docker/ubuntu/Dockerfile similarity index 100% rename from docker/Dockerfile rename to docker/ubuntu/Dockerfile diff --git a/docker/README.md b/docker/ubuntu/README.md similarity index 100% rename from docker/README.md rename to docker/ubuntu/README.md diff --git a/docker/entrypoint b/docker/ubuntu/entrypoint similarity index 100% rename from docker/entrypoint rename to docker/ubuntu/entrypoint