diff --git a/gateway/Dockerfile.runtime b/gateway/Dockerfile.multistage similarity index 80% rename from gateway/Dockerfile.runtime rename to gateway/Dockerfile.multistage index 722e9cd4..561492f5 100644 --- a/gateway/Dockerfile.runtime +++ b/gateway/Dockerfile.multistage @@ -18,8 +18,8 @@ EXPOSE 8080 ENV http_proxy "" ENV https_proxy "" -COPY --from 0 gateway . +COPY --from=0 /go/src/github.com/alexellis/faas/gateway/gateway . -COPY --from 0 assets assets +COPY assets assets CMD ["./gateway"] diff --git a/gateway/handlers/functionshandler.go b/gateway/handlers/functionshandler.go index 58b657f7..35e28b2b 100644 --- a/gateway/handlers/functionshandler.go +++ b/gateway/handlers/functionshandler.go @@ -174,11 +174,8 @@ func makeSpec(request *requests.CreateFunctionRequest) swarm.ServiceSpec { max := uint64(1) nets := []swarm.NetworkAttachmentConfig{ - swarm.NetworkAttachmentConfig{Target: request.Network}, + {Target: request.Network}, } - - // TODO: request.EnvProcess should only be set if it's not nil, otherwise we override anything in the Docker image already - spec := swarm.ServiceSpec{ TaskTemplate: swarm.TaskSpec{ RestartPolicy: &swarm.RestartPolicy{ @@ -187,7 +184,6 @@ func makeSpec(request *requests.CreateFunctionRequest) swarm.ServiceSpec { }, ContainerSpec: swarm.ContainerSpec{ Image: request.Image, - Env: []string{fmt.Sprintf("fprocess=%s", request.EnvProcess)}, Labels: map[string]string{"function": "true"}, }, Networks: nets, @@ -196,5 +192,15 @@ func makeSpec(request *requests.CreateFunctionRequest) swarm.ServiceSpec { Name: request.Service, }, } + + // TODO: request.EnvProcess should only be set if it's not nil, otherwise we override anything in the Docker image already + var env []string + if len(request.EnvProcess) > 0 { + env = append(env, fmt.Sprintf("fprocess=%s", request.EnvProcess)) + } + if len(env) > 0 { + spec.TaskTemplate.ContainerSpec.Env = env + } + return spec }