blob: 31f8906fe752df815101106db6420b1b37c98343 [file] [log] [blame]
# Build and run the change server.
#
# This image will launch the server with the default port (port 9000) open.
#
# To run, add the -s argument and the -u argument
# The -u argument takes a Postgres URL.
# The -s argument takes the name of the logical replication slot to create
#
# Each instance of the change server must have a different logical replication
# slot (otherwise, changes will be lost). Furthermore, the logical
# replication slot lasts forever -- when instances are shut down, the slot
# must be removed, or else the database will never be able to purge
# its transaction logs.
#
# For instance:
#
# docker run --rm -t changeserver -s test -u postgres://user:pass@host/databasename?ssl=false
FROM golang:1.7.3-alpine
RUN \
apk add --no-cache gcc linux-headers musl-dev
COPY . /go/src/github.com/apigee-labs/transicator
RUN \
(cd /go/src/github.com/apigee-labs/transicator/changeserver; go build -o /changeserver) \
&& mkdir /keys \
&& rm -r /go
EXPOSE 9000 9443 10000
VOLUME [ "/data", "/keys" ]
ENTRYPOINT [ "/changeserver", "--mgmtport", "10000", "-d", "/data"]