diff --git a/Dockerfile.run b/Dockerfile.run index fb43123..cca51f8 100644 --- a/Dockerfile.run +++ b/Dockerfile.run @@ -2,10 +2,10 @@ FROM alpine RUN apk --update add ca-certificates -ADD play-with-docker /bin/play-with-docker -COPY ./www /bin/www +ADD play-with-docker /app/play-with-docker +COPY ./www /app/www -WORKDIR /bin -CMD ["play-with-docker"] +WORKDIR /app +CMD ["./play-with-docker"] EXPOSE 3000 diff --git a/handlers/new_instance.go b/handlers/new_instance.go index 8e299da..cb95ab9 100644 --- a/handlers/new_instance.go +++ b/handlers/new_instance.go @@ -25,6 +25,8 @@ func NewInstance(rw http.ResponseWriter, req *http.Request) { i, err := services.NewInstance(s) if err != nil { log.Println(err) + rw.WriteHeader(http.StatusInternalServerError) + return //TODO: Set a status error } else { json.NewEncoder(rw).Encode(i) diff --git a/services/instance.go b/services/instance.go index 0bbe1c5..23c322e 100644 --- a/services/instance.go +++ b/services/instance.go @@ -66,6 +66,9 @@ func NewInstance(session *Session) (*Instance, error) { rw.Lock() err = saveSessionsToDisk() rw.Unlock() + if err != nil { + return nil, err + } wsServer.BroadcastTo(session.Id, "new instance", instance.Name, instance.IP, instance.Hostname) diff --git a/services/session.go b/services/session.go index 01f4d0c..a53a8f9 100644 --- a/services/session.go +++ b/services/session.go @@ -116,7 +116,7 @@ func GetSession(sessionId string) *Session { } func LoadSessionsFromDisk() error { - file, err := os.Open("./sessions.gob") + file, err := os.Open("./pwd/sessions.gob") if err == nil { decoder := gob.NewDecoder(file) err = decoder.Decode(&sessions) @@ -126,7 +126,7 @@ func LoadSessionsFromDisk() error { } func saveSessionsToDisk() error { - file, err := os.Create("./sessions.gob") + file, err := os.Create("./pwd/sessions.gob") if err == nil { encoder := gob.NewEncoder(file) err = encoder.Encode(&sessions)