Skip to content

Commit b2005eb

Browse files
authored
Persist CSRF authkey inside a data volume (#225)
* Persist CSRF authkey inside a data volume
1 parent 0da72fc commit b2005eb

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@ FROM scratch
22

33
COPY dist /
44

5+
VOLUME /data
6+
57
EXPOSE 9000
68
ENTRYPOINT ["/ui-for-docker"]

dockerui.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ var (
2020
endpoint = flag.String("e", "/var/run/docker.sock", "Dockerd endpoint")
2121
addr = flag.String("p", ":9000", "Address and port to serve UI For Docker")
2222
assets = flag.String("a", ".", "Path to the assets")
23+
data = flag.String("d", ".", "Path to the data")
2324
authKey []byte
2425
authKeyFile = "authKey.dat"
2526
)
@@ -72,7 +73,7 @@ func createUnixHandler(e string) http.Handler {
7273
return &UnixHandler{e}
7374
}
7475

75-
func createHandler(dir string, e string) http.Handler {
76+
func createHandler(dir string, d string, e string) http.Handler {
7677
var (
7778
mux = http.NewServeMux()
7879
fileHandler = http.FileServer(http.Dir(dir))
@@ -92,11 +93,12 @@ func createHandler(dir string, e string) http.Handler {
9293
}
9394

9495
// Use existing csrf authKey if present or generate a new one.
95-
dat, err := ioutil.ReadFile(authKeyFile)
96+
var authKeyPath = d + "/" + authKeyFile
97+
dat, err := ioutil.ReadFile(authKeyPath)
9698
if err != nil {
9799
fmt.Println(err)
98100
authKey = securecookie.GenerateRandomKey(32)
99-
err := ioutil.WriteFile(authKeyFile, authKey, 0644)
101+
err := ioutil.WriteFile(authKeyPath, authKey, 0644)
100102
if err != nil {
101103
fmt.Println("unable to persist auth key", err)
102104
}
@@ -125,7 +127,7 @@ func csrfWrapper(h http.Handler) http.Handler {
125127
func main() {
126128
flag.Parse()
127129

128-
handler := createHandler(*assets, *endpoint)
130+
handler := createHandler(*assets, *data, *endpoint)
129131
if err := http.ListenAndServe(*addr, handler); err != nil {
130132
log.Fatal(err)
131133
}

gruntFile.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,14 +258,14 @@ module.exports = function (grunt) {
258258
command: [
259259
'docker stop ui-for-docker',
260260
'docker rm ui-for-docker',
261-
'docker run --privileged -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --name ui-for-docker ui-for-docker'
261+
'docker run --privileged -d -p 9000:9000 -v /tmp/ui-for-docker:/data -v /var/run/docker.sock:/var/run/docker.sock --name ui-for-docker ui-for-docker -d /data'
262262
].join(';')
263263
},
264264
runSwarm: {
265265
command: [
266266
'docker stop ui-for-docker',
267267
'docker rm ui-for-docker',
268-
'docker run --net=host -d --name ui-for-docker ui-for-docker -e http://127.0.0.1:2374'
268+
'docker run --net=host -d -v /tmp/ui-for-docker:/data --name ui-for-docker ui-for-docker -d /data -e http://127.0.0.1:2374'
269269
].join(';')
270270
},
271271
cleanImages: {

0 commit comments

Comments
 (0)