sshwifty 部署 - SSH-Web客户端 Dockerfile docker rancher


https://hub.docker.com/r/niruix/sshwifty

https://github.com/niruix/sshwifty

docker run --detach \ 
  --restart=always \ 
  --publish 8182:8182 \ 
  --name sshwifty \ 
  niruix/sshwifty:latest


如果你想给 Sshwifty 部署一个 HTTPS 证书,可以使用以下的指令:

docker run --detach \ 
  --restart=always \ 
  --publish 8182:8182 \ 
  --env SSHWIFTY_DOCKER_TLSCERT="$(cat /path/to/domain.crt)" 
  --env SSHWIFTY_DOCKER_TLSCERTKEY="$(cat /path/to/domain.key)" 
  --name sshwifty \ 
  niruix/sshwifty:latest

/path/to/domain.crt 和 /path/to/domain.key 是用来指定本地 HTTPS 证书和密钥文件所在的位置。


默认口令为:WEB_ACCESS_PASSWORD,

如需修改可变更配置文件中的 "SharedKey": "WEB_ACCESS_PASSWORD" 配置项。


Dockerfile:

# Build the build base environment
FROM debian:sid AS base
RUN set -ex && \
    cd / && \
    echo 'res=0; for i in $(seq 0 36); do $@; res=$?; [ $res -eq 0 ] && exit $res || sleep 10; done; exit $res' > /try.sh && chmod +x /try.sh && \
    echo 'cpid=""; ret=0; i=0; for c in "$@"; do ( (((((eval $c; echo $? >&3) | sed "s/^/|-($i) /" >&4) 2>&1 | sed "s/^/|-($i)!/" >&2) 3>&1) | (read xs; exit $xs)) 4>&1) & ppid=$!; cpid="$cpid $ppid"; echo "+ Child $i (PID $ppid): $c ..."; i=$((i+1)); done; for c in $cpid; do wait $c; cret=$?; [ $cret -eq 0 ] && continue; echo "* Child PID $c has failed." >&2; ret=$cret; done; exit $ret' > /child.sh && chmod +x /child.sh && \
    export PATH=$PATH:/ && \
    echo 'apt-get update && apt-get install autoconf automake libtool build-essential git npm golang-go -y' > /install.sh && chmod +x /install.sh && \
    ([ -z "$HTTP_PROXY" ] || (echo "Acquire::http::Proxy \"$HTTP_PROXY\";" >> /etc/apt/apt.conf)) && \
    ([ -z "$HTTPS_PROXY" ] || (echo "Acquire::https::Proxy \"$HTTPS_PROXY\";" >> /etc/apt/apt.conf)) && \
    (echo "Acquire::Retries \"8\";" >> /etc/apt/apt.conf) && \
    try.sh install.sh && rm /install.sh
# Build the base environment for application libraries
FROM base AS libbase
COPY . /tmp/.build/sshwifty
RUN set -ex && \
    apt-get install libpng-dev -y && \
    ls -l /tmp/.build/sshwifty && \
    cd / && \
    export PATH=$PATH:/ && \
    ([ -z "$HTTP_PROXY" ] || (git config --global http.proxy "$HTTP_PROXY" && npm config set proxy "$HTTP_PROXY")) && \
    ([ -z "$HTTPS_PROXY" ] || (git config --global https.proxy "$HTTPS_PROXY" && npm config set https-proxy "$HTTPS_PROXY")) && \
    child.sh \
        'cd /tmp/.build/sshwifty && try.sh npm install' \
        'cd /tmp/.build/sshwifty && try.sh go mod download'
# Main building environment
FROM libbase AS builder
RUN set -ex && \
    cd / && \
    export PATH=$PATH:/ && \
    ([ -z "$HTTP_PROXY" ] || (git config --global http.proxy "$HTTP_PROXY" && npm config set proxy "$HTTP_PROXY")) && \
    ([ -z "$HTTPS_PROXY" ] || (git config --global https.proxy "$HTTPS_PROXY" && npm config set https-proxy "$HTTPS_PROXY")) && \
    (cd /tmp/.build/sshwifty && try.sh npm run build && mv ./sshwifty /)
# Build the final image for running
FROM alpine:latest
ENV SSHWIFTY_HOSTNAME= \
    SSHWIFTY_SHAREDKEY= \
    SSHWIFTY_DIALTIMEOUT=10 \
    SSHWIFTY_SOCKS5= \
    SSHWIFTY_SOCKS5_USER= \
    SSHWIFTY_SOCKS5_PASSWORD= \
    SSHWIFTY_LISTENINTERFACE=0.0.0.0 \
    SSHWIFTY_LISTENPORT=8182 \
    SSHWIFTY_INITIALTIMEOUT=0 \
    SSHWIFTY_READTIMEOUT=0 \
    SSHWIFTY_WRITETIMEOUT=0 \
    SSHWIFTY_HEARTBEATTIMEOUT=0 \
    SSHWIFTY_READDELAY=0 \
    SSHWIFTY_WRITEELAY=0 \
    SSHWIFTY_TLSCERTIFICATEFILE= \
    SSHWIFTY_TLSCERTIFICATEKEYFILE= \
    SSHWIFTY_DOCKER_TLSCERT= \
    SSHWIFTY_DOCKER_TLSCERTKEY=
COPY --from=builder /sshwifty /
RUN set -ex && \
    adduser -D sshwifty && \
    chmod +x /sshwifty && \
    echo '#!/bin/sh' > /sshwifty.sh && echo >> /sshwifty.sh && echo '([ -z "$SSHWIFTY_DOCKER_TLSCERT" ] || echo "$SSHWIFTY_DOCKER_TLSCERT" > /tmp/cert); ([ -z "$SSHWIFTY_DOCKER_TLSCERTKEY" ] || echo "$SSHWIFTY_DOCKER_TLSCERTKEY" > /tmp/certkey); if [ -f "/tmp/cert" ] && [ -f "/tmp/certkey" ]; then SSHWIFTY_TLSCERTIFICATEFILE=/tmp/cert SSHWIFTY_TLSCERTIFICATEKEYFILE=/tmp/certkey /sshwifty; else /sshwifty; fi;' >> /sshwifty.sh && chmod +x /sshwifty.sh
USER sshwifty
EXPOSE 8182
ENTRYPOINT [ "/sshwifty.sh" ]
CMD []



签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回