FROM golang:alpine

# Set up workdir
RUN mkdir -p /prod/persist
WORKDIR /prod

# Install OpenVPN
RUN apk update
RUN apk add openvpn iptables

# Copy our chainloader script
COPY chainloader.sh /prod/chainloader.sh
RUN chmod +x /prod/chainloader.sh

# Copy server and client config files
COPY server.conf /prod/server.conf
COPY client.conf /prod/client.conf
COPY nat.sh /prod/nat.sh
RUN chmod +x /prod/nat.sh

# Copy client config host code and compile it
COPY host.go /tmp/host.go
RUN go build -o /prod/confhost /tmp/host.go

# Create jail user
# (We're dropping it to this user in the chainloader script)
RUN adduser -u 1337 -D jail

# Ready to rumble.
CMD /prod/chainloader.sh