45 lines
1.2 KiB
Docker
45 lines
1.2 KiB
Docker
FROM golang:1.17.2
|
|
|
|
WORKDIR /src
|
|
|
|
RUN touch shell.sh
|
|
|
|
RUN \
|
|
# gterm \
|
|
curl -fsSL https://kumoly.io/attachments/acfc99c7-28c7-4886-bb7d-783c3a6a8c64 | tar -C /usr/local/bin/ -xz &&\
|
|
# configui \
|
|
curl -fsSL https://kumoly.io/attachments/cefc7869-2a61-4487-a155-ad891cea9abd | 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 echo '#!/bin/sh\n\
|
|
echo "starting shell service..."\n\
|
|
gterm -addr :8080 -name GoPlayground &\n\
|
|
echo "starting configui..."\n\
|
|
configui -log configui.log -f conf.json -bind :8001 &\n\
|
|
caddy run --config Caddyfile\n\
|
|
' > /entrypoint.sh
|
|
|
|
RUN echo '\
|
|
:8000 {\n\
|
|
route /sh/* {\n\
|
|
uri strip_prefix /sh\n\
|
|
reverse_proxy localhost:8080\n\
|
|
}\n\
|
|
reverse_proxy localhost:8001\n\
|
|
}' > Caddyfile
|
|
|
|
RUN echo '{"app_name":"Go Playground","no_reconfig":true \
|
|
,"files":[{"path":"main.go","name":"Main","action":"go run main.go","order":-1},{"path":"shell.sh","name":"Shell","action":"bash shell.sh","order":1}] \
|
|
,"hide_config":true}' > conf.json
|
|
|
|
RUN echo 'package main\n\
|
|
\n\
|
|
import "fmt"\n\
|
|
\n\
|
|
func main() {\n\
|
|
fmt.Println("Hello, world.")\n\
|
|
}\n' > main.go
|
|
|
|
|
|
ENTRYPOINT ["/bin/sh","/entrypoint.sh"]
|