FROM golang:1.17.2 WORKDIR /src RUN \ # gterm \ curl -fsSL https://kumoly.io/attachments/e4bdde2a-4247-446f-a734-df3962c8b83b | tar -C /usr/local/bin/ -xz &&\ # configui \ curl -fsSL https://kumoly.io/attachments/e4258c02-1e79-4969-b553-070668498dd4 | tar -C /usr/local/bin/ -xz &&\ curl -fsSL https://github.com/caddyserver/caddy/releases/download/v2.4.6/caddy_2.4.6_linux_amd64.tar.gz | tar -C /usr/local/bin/ -xz RUN touch shell.sh && \ echo '\ :8000 {\n\ route /sh/* {\n\ uri strip_prefix /sh\n\ reverse_proxy localhost:8080\n\ }\n\ reverse_proxy localhost:8001\n\ }' > /Caddyfile && \ echo '\ {{ define "links" }}\n\ Shell\n\ {{end}}\n\ ' > /links.tmpl && \ echo 'package main\n\ \n\ import "fmt"\n\ \n\ func main() {\n\ fmt.Println("Hello, world.")\n\ }\n' > main.go && \ echo '#!/bin/bash\n\ echo "starting shell service..."\n\ gterm -profile > /.profile\n\ cd /root && gterm -addr :8080 -name GoPlayground -arg "--rcfile" -arg /.profile &\n\ echo "starting configui..."\n\ echo "setup config ..."\n\ echo "{\"app_name\":\"Go Playground\",\"no_reconfig\":true,\"shell\": \"bash\",\"hide_config\":true,\"cust\":\"/\",\"files\":[\ " > /conf.json \n\ for f in *.go;do if [ "$f" != "main.go" ] ; then echo "{\"path\":\"$f\"},">>/conf.json;fi done \n\ echo "{\"path\":\"main.go\",\"name\":\"Main\",\"action\":\"go run main.go\",\"order\":-1},">>/conf.json \n\ echo "{\"path\":\"shell.sh\",\"name\":\"Shell\",\"action\":\"bash shell.sh\",\"order\":1}]}">>/conf.json \n\ configui -f /conf.json -bind :8001 &\n\ caddy run --config /Caddyfile\n\ ' > /entrypoint.sh ENTRYPOINT ["/bin/bash","/entrypoint.sh"]