diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..87bab7c7f43c6406bca4c75dd4502071e7991817
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,12 @@
+FROM golang:1.9.0 AS builder
+WORKDIR /go/src/gitlab.mfb.io/devops/nexenta_exporter
+COPY . .
+RUN curl -s https://glide.sh/get | sh
+RUN glide install
+RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -extldflags '-static'" -o nexenta_exporter
+
+FROM scratch
+LABEL maintainer "Jan Grewe <jan.grewe@flixbus.com>"
+COPY --from=builder /go/src/gitlab.mfb.io/devops/nexenta_exporter/nexenta_exporter /nexenta_exporter
+EXPOSE 9457
+ENTRYPOINT ["/nexenta_exporter"]
diff --git a/glide.lock b/glide.lock
index 7487ced2e506928e53d55218de951a3da4825923..57d4748de6273ca924a8840a82442a3e114f78c9 100644
--- a/glide.lock
+++ b/glide.lock
@@ -1,5 +1,5 @@
-hash: 0bbc534a255abb51b978492c5d43b4ae0f7a8c89e969571a8b7979d1ddaea9a8
-updated: 2018-06-05T16:46:38.641011889+02:00
+hash: 09dcc55682d2ed07028b0682a29000bd39d1c225a2cd313e9b9049e72b990cd2
+updated: 2018-06-07T14:53:28.640281981+02:00
 imports:
 - name: github.com/beorn7/perks
   version: 4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9
@@ -37,11 +37,11 @@ imports:
 - name: github.com/Sirupsen/logrus
   version: ea8897e79973357ba785ac2533559a6297e83c44
 - name: golang.org/x/crypto
-  version: df8d4716b3472e4a531c33cedbe537dae921a1a9
+  version: b47b1587369238182299fe4dad77d05b8b461e06
   subpackages:
   - ssh/terminal
 - name: golang.org/x/sys
-  version: c11f84a56e43e20a78cee75a7c034031ecf57d1f
+  version: 9527bec2660bd847c050fda93a0f0c6dee0800bb
   subpackages:
   - unix
   - windows
diff --git a/glide.yaml b/glide.yaml
index 4007deefeee88754ce506727341ffb18cd9d63fc..9e0bbadd9528a71ea0b89dc5b48ac036a246cfb7 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -1,4 +1,4 @@
-package: gitlab.mfb.io/devops/nexenta-exporter
+package: gitlab.mfb.io/devops/nexenta_exporter
 import:
 - package: github.com/prometheus/client_golang
   version: ~0.9.0-pre1
diff --git a/main.go b/main.go
index 1276f336a6478f48b52e4d43cd14fbc6b9f6fd74..fbb24ddf4436a91055890f3534362bbf299a1701 100644
--- a/main.go
+++ b/main.go
@@ -26,11 +26,11 @@ const (
 var (
 	listenAddr      = flag.String("listen-address", ":9457", "The address to listen on for HTTP requests.")
 	metricsEndpoint = flag.String("metrics-endpoint", "/metrics", "Path under which to expose metrics.")
-	apiHost         = flag.String("host", "nexenta", "Nexenta API host.")
-	apiPort         = flag.String("port", "8457", "Nexenta API port.")
-	apiUser         = flag.String("user", "admin", "Nexenta API username.")
-	apiPass         = flag.String("password", "password", "Nexenta API password.")
-	apiSsl          = flag.Bool("ssl", false, "Use SSL for the Nexenta API.")
+	apiHost         = flag.String("api-host", "nexenta", "Nexenta API host.")
+	apiPort         = flag.String("api-port", "8457", "Nexenta API port.")
+	apiUser         = flag.String("api-user", "admin", "Nexenta API username.")
+	apiPass         = flag.String("api-password", "password", "Nexenta API password.")
+	apiSsl          = flag.Bool("api-ssl", false, "Use SSL for the Nexenta API.")
 	insecure        = flag.Bool("insecure", false, "Ignore server certificate if using https.")
 	showVersion     = flag.Bool("version", false, "Print version information.")
 )
@@ -173,14 +173,14 @@ func (e *Exporter) collect(ch chan<- prometheus.Metric) error {
 	// Volumes
 	volumes, err := e.getVolumes(ch)
 	if err != nil {
-		err = fmt.Errorf("getVolumes(): %v", err)
+		return fmt.Errorf("getVolumes(): %v", err)
 	}
 
 	if len(volumes) > 0 {
 		for _, volume := range volumes {
 			err = e.getVolumeStatus(ch, volume)
 			if err != nil {
-				err = fmt.Errorf("getVolumeStatus(): %v", err)
+				return fmt.Errorf("getVolumeStatus(): %v", err)
 			}
 		}
 	}
@@ -188,14 +188,14 @@ func (e *Exporter) collect(ch chan<- prometheus.Metric) error {
 	// JBODs
 	jbods, err := e.getJBODs(ch)
 	if err != nil {
-		err = fmt.Errorf("getJBODs(): %v", err)
+		return fmt.Errorf("getJBODs(): %v", err)
 	}
 
 	if len(jbods) > 0 {
 		for _, jbod := range jbods {
 			err = e.getJBODSensors(ch, jbod)
 			if err != nil {
-				err = fmt.Errorf("getJBODSensors(): %v", err)
+				return fmt.Errorf("getJBODSensors(): %v", err)
 			}
 		}
 	}
@@ -203,7 +203,7 @@ func (e *Exporter) collect(ch chan<- prometheus.Metric) error {
 	// License
 	err = e.getLicenseInfo(ch)
 	if err != nil {
-		err = fmt.Errorf("getLicenseInfo(): %v", err)
+		return fmt.Errorf("getLicenseInfo(): %v", err)
 	}
 
 	return err
@@ -325,8 +325,6 @@ func (e *Exporter) queryApi(ch chan<- prometheus.Metric, object string, method s
 		return nil, fmt.Errorf("Request Error: Status %s %s", resp.Status, data)
 	}
 
-	//log.Infof("response: %s", data)
-
 	var apiResponse = new(ApiResponse)
 	err = json.Unmarshal(data, &apiResponse); if err != nil { return nil, err }
 
@@ -347,7 +345,10 @@ func main() {
 		os.Exit(0)
 	}
 
-	exporter := NewExporter("http://" + *apiUser + ":" + *apiPass + "@" + *apiHost + ":" + *apiPort + apiPath)
+	apiProtocol := "http"
+	if *apiSsl { apiProtocol = "https" }
+
+	exporter := NewExporter(apiProtocol + "://" + *apiUser + ":" + *apiPass + "@" + *apiHost + ":" + *apiPort + apiPath)
 	prometheus.MustRegister(exporter)
 	prometheus.MustRegister(version.NewCollector("nexenta_exporter"))