Top Menu

dockerfile中如何进行if判断

由于部分github的release并非由docker编译,导致在构建image的时候无法直接通过docker内置的架构变量构造出下载地址。

例如,针对naiveproxy-$version-$os-$arch.tar.xz结构的格式,docker本身是有对应的TARGETOS和TARGETARCH全局变量,但是,docker的变量值是amd64,naiveproxy的变量值是x64。所以需要在dockerfile中判断架构并替换为naiveproxy架构。

需求

  • 根据不同的build系统架构进入不同的build处理流程,例如if到amd64,替换为x64后去github下载对应的release

实现-shell方案

通过增加layer的方法注入shell,让base image执行if命令,优点是只要shell支持的命令都可以运行,缺点是依赖base image,linux命令不兼容windows的base image。

RUN if [ "$env" = "defined" ]; \ then echo condition is true; \ else echo condition is false; \ fi

Continue Reading 1

群晖DSM5.2部署hysteria client

群晖DSM部署hysteria client

  • 部署方案:Docker for Synology NAS
  • 部署版本:minirplus/hysteria:v1.0.4

安装Docker for Synology NAS

由于package center里的版本较旧,这里直接从Synology下载最新的spk安装包

Package Center——》Installed——》Manual Install——》Browse choose downloaded spk file——》Next——》install

开启DSM SSH

Control Panel——》Terminal & SNMP——》Enable SSH service

Control Panel——》User——》Edit admin——》change Password——》OK

shell client——》create new session——》host:nas-ip-address——》user:root——》password:admin-user-password——》login into nas

创建配置文件

查看目录结构

cd / && ls

可以看到目录里有volume文件夹,这里的volume对应Storage Manager中的磁盘空间

选一个磁盘,然后进入

可以看到这里部分目录和Shared Folder对应,其他都是dsm的系统目录可以忽略

所以对应于File Station里,或者说对应于SMB来说

  • 在用户角度看到的路径:/volume2/docker
  • 在SSH里的真实路径:/volume2/volume2/docker

OK,了解这层关系之后,就可以创建配置文件了,在某个目录下创建配置文件client.json

  • windows:\\your-nas-ip-address\volume2\docker\hysteria\client.json
  • mac:smb://your-nas-ip-address/volume2/docker/hysteria/client.json

example config

{ "server": "your-hysteria-server-domain:listen-port", "protocol": "udp", "up_mbps": 100, "down_mbps": 1000, "socks5": { "listen": ":10083", "timeout": 300, "disable_udp": false }, "insecure": false }

Continue Reading 0

测试接入v2ray_simple

v2ray_simple,a verysimple proxy。

测试版本:v1.2.4-beta.2

运行服务

docker run -d \ -p 4433:4433 \ --name verysimple \ minirplus/verysimple:v1.2.4-beta.2 \ verysimple -L=vlesss://a684455c-b14f-11ea-bf0d-42010aaa0003@0.0.0.0:4433?cert=&key=&v=0&fallback=:80#myvlesss1

Continue Reading 0

hysteria中转SSR

hysteria支持tcp中转,因此可以作为tcp隧道来作为ssr中转。

hysteria的中转类似于GOST v2 Relay协议的端口转发功能,即由客户端指定远程地址和端口,服务端不做任何限制。

例如监听本地1234端口,并将所有这个端口收到的tcp请求通过hysteria隧道转发到hysteria服务端,hysteria服务端再将请求发送到remote服务器的989端口,并将remote服务器返回内容通过hysteria隧道回传给本地hysteria客户端,hysteria客户端再将返回内容原路返回给之前发送请求的应用。只需要在客户端新增配置如下

... "relay_tcps": [ { "listen": ":1234", "remote": "lts.minirplus.com:989", "timeout": 300 } ], ...

Continue Reading 0

Powered by WordPress. Designed by WooThemes