diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine new file mode 100644 index 00000000000..b8906b00618 --- /dev/null +++ b/docker/Dockerfile.alpine @@ -0,0 +1,26 @@ +FROM golang:1.11-alpine3.8 AS builder + +WORKDIR $GOPATH/src/github.com/nats-io/gnatsd + +MAINTAINER Waldemar Quevedo + +RUN apk add --update git + +COPY . . + +RUN CGO_ENABLED=0 go build -v -a -tags netgo -installsuffix netgo -ldflags "-s -w -X github.com/nats-io/gnatsd/server.gitCommit=`git rev-parse --short HEAD`" -o /gnatsd + +FROM alpine:3.8 + +RUN apk add --update ca-certificates && mkdir -p /nats/bin && mkdir /nats/conf + +COPY docker/gnatsd.conf /nats/conf/gnatsd.conf +COPY --from=builder /gnatsd /nats/bin/gnatsd + +RUN ln -ns /nats/bin/gnatsd /bin/gnatsd + +# Expose client, management, cluster and gateway ports +EXPOSE 4222 8222 6222 5222 + +ENTRYPOINT ["/bin/gnatsd"] +CMD ["-c", "/nats/conf/gnatsd.conf"] diff --git a/docker/gnatsd.conf b/docker/gnatsd.conf new file mode 100644 index 00000000000..a94271cd1c8 --- /dev/null +++ b/docker/gnatsd.conf @@ -0,0 +1,26 @@ + +# Client port of 4222 on all interfaces +port: 4222 + +# HTTP monitoring port +monitor_port: 8222 + +# This is for clustering multiple servers together. +cluster { + + # Route connections to be received on any interface on port 6222 + port: 6222 + + # Routes are protected, so need to use them with --routes flag + # e.g. --routes=nats-route://ruser:T0pS3cr3t@otherdockerhost:6222 + authorization { + user: ruser + password: T0pS3cr3t + timeout: 2 + } + + # Routes are actively solicited and connected to from this server. + # This Docker image has none by default, but you can pass a + # flag to the gnatsd docker image to create one to an existing server. + routes = [] +}