1
0
Fork 0
mirror of https://github.com/postmannen/ctrl.git synced 2024-12-14 12:37:31 +00:00
ctrl/Dockerfile

125 lines
4.2 KiB
Docker

# build stage
FROM golang:1.22-alpine AS build-env
RUN apk --no-cache add build-base git gcc
RUN mkdir -p /build
COPY ./ /build/
WORKDIR /build/cmd/ctrl/
RUN go version
RUN go build -o ctrl
# final stage
FROM alpine
RUN apk update && apk add curl && apk add nmap
WORKDIR /app
COPY --from=build-env /build/cmd/ctrl/ctrl /app/
ENV CONFIG_FOLDER "./etc"
ENV SOCKET_FOLDER "./tmp"
ENV TCP_LISTENER ""
ENV HTTP_LISTENER "localhost:8091"
ENV DATABASE_FOLDER "./var/lib"
ENV NODE_NAME ""
ENV BROKER_ADDRESS "127.0.0.1:4222"
ENV NATS_CONN_OPT_TIMEOUT "20"
ENV NATS_CONNECT_RETRY_INTERVAL "10"
ENV NATS_RECONNECT_JITTER "100"
ENV NATS_RECONNECT_JITTER_TLS "1"
ENV REQ_KEYS_REQUEST_UPDATE_INTERVAL "60"
ENV REQ_ACL_REQUEST_UPDATE_INTERVAL "60"
ENV PROFILING_PORT ""
ENV PROM_HOST_AND_PORT "127.0.0.1:2111"
ENV DEFAULT_MESSAGE_TIMEOUT 10
ENV DEFAULT_MESSAGE_RETRIES 3
ENV DEFAULT_METHOD_TIMEOUT 10
ENV SUBSCRIBERS_DATA_FOLDER "./var"
ENV CENTRAL_NODE_NAME "central"
ENV ROOT_CA_PATH ""
ENV NKEY_SEED_FILE ""
ENV NKEY_SEED ""
ENV EXPOSE_DATA_FOLDER "127.0.0.1:8090"
ENV ERROR_MESSAGE_RETRIES 3
ENV ERROR_MESSAGE_TIMEOUT 10
ENV COMPRESSION ""
ENV SERIALIZATION ""
ENV SET_BLOCK_PROFILE_RATE "0"
ENV ENABLE_SOCKET "1"
ENV ENABLE_SIGNATURE_CHECK "0"
ENV ENABLE_ACL_CHECK "0"
ENV IS_CENTRAL_AUTH "0"
ENV ENABLE_DEBUG "0"
ENV KEEP_PUBLISHERS_ALIVE_FOR "10"
ENV START_PUB_REQ_HELLO 60
ENV ENABLE_KEY_UPDATES "1"
ENV ENABLE_ACL_UPDATES "1"
ENV IS_CENTRAL_ERROR_LOGGER "0"
ENV START_SUB_REQ_HELLO "1"
ENV START_SUB_REQ_TO_FILE_APPEND "1"
ENV START_SUB_REQ_TO_FILE "1"
ENV START_SUB_REQ_TO_FILE_NACK "1"
ENV START_SUB_REQ_COPY_SRC "1"
ENV START_SUB_REQ_COPY_DST "1"
ENV START_SUB_REQ_CLI_COMMAND "1"
ENV START_SUB_REQ_TO_CONSOLE "1"
ENV START_SUB_REQ_HTTP_GET "1"
ENV START_SUB_REQ_HTTP_GET_SCHEDULED "1"
ENV START_SUB_REQ_TAIL_FILE "1"
ENV START_SUB_REQ_CLI_COMMAND_CONT "1"
CMD ["ash","-c","env CONFIGFOLDER=./etc/ /app/ctrl\
-socketFolder=${SOCKET_FOLDER}\
-tcpListener=${TCP_LISTENER}\
-httpListener=${HTTP_LISTENER}\
-databaseFolder=${DATABASE_FOLDER}\
-nodeName=${NODE_NAME}\
-brokerAddress=${BROKER_ADDRESS}\
-natsConnOptTimeout=${NATS_CONN_OPT_TIMEOUT}\
-natsConnectRetryInterval=${NATS_CONNECT_RETRY_INTERVAL}\
-natsReconnectJitter=${NATS_RECONNECT_JITTER}\
-natsReconnectJitterTLS=${NATS_RECONNECT_JITTER_TLS}\
-REQKeysRequestUpdateInterval=${REQ_KEYS_REQUEST_UPDATE_INTERVAL}\
-REQAclRequestUpdateInterval=${REQ_ACL_REQUEST_UPDATE_INTERVAL}\
-profilingPort=${PROFILING_PORT}\
-promHostAndPort=${PROM_HOST_AND_PORT}\
-defaultMessageTimeout=${DEFAULT_MESSAGE_TIMEOUT}\
-defaultMessageRetries=${DEFAULT_MESSAGE_RETRIES}\
-defaultMethodTimeout=${DEFAULT_METHOD_TIMEOUT}\
-subscribersDataFolder=${SUBSCRIBERS_DATA_FOLDER}\
-centralNodeName=${CENTRAL_NODE_NAME}\
-rootCAPath=${ROOT_CA_PATH}\
-nkeySeedFile=${NKEY_SEED_FILE}\
-nkeySeed=${NKEY_SEED}\
-exposeDataFolder=${EXPOSE_DATA_FOLDER}\
-errorMessageRetries=${ERROR_MESSAGE_RETRIES}\
-errorMessageTimeout=${ERROR_MESSAGE_TIMEOUT}\
-compression=${COMPRESSION}\
-serialization=${SERIALIZATION}\
-setBlockProfileRate=${SET_BLOCK_PROFILE_RATE}\
-enableSocket=${ENABLE_SOCKET}\
-enableSignatureCheck=${ENABLE_SIGNATURE_CHECK}\
-enableAclCheck=${ENABLE_ACL_CHECK}\
-isCentralAuth=${IS_CENTRAL_AUTH}\
-enableDebug=${ENABLE_DEBUG}\
-keepPublishersAliveFor=${KEEP_PUBLISHERS_ALIVE_FOR}\
-startPubREQHello=${START_PUB_REQ_HELLO}\
-EnableKeyUpdates=${ENABLE_KEY_UPDATES}\
-EnableAclUpdates=${ENABLE_ACL_UPDATES}\
-isCentralErrorLogger=${IS_CENTRAL_ERROR_LOGGER}\
-startSubREQHello=${START_SUB_REQ_HELLO}\
-startSubREQToFileAppend=${START_SUB_REQ_TO_FILE_APPEND}\
-startSubREQToFile=${START_SUB_REQ_TO_FILE}\
-startSubREQCopySrc=${START_SUB_REQ_COPY_SRC}\
-startSubREQCopyDst=${START_SUB_REQ_COPY_DST}\
-startSubREQToFileNACK=${START_SUB_REQ_TO_FILE_NACK}\
-startSubREQCliCommand=${START_SUB_REQ_CLI_COMMAND}\
-startSubREQToConsole=${START_SUB_REQ_TO_CONSOLE}\
-startSubREQHttpGet=${START_SUB_REQ_HTTP_GET}\
-startSubREQHttpGetScheduled=${START_SUB_REQ_HTTP_GET_SCHEDULED}\
-startSubREQTailFile=${START_SUB_REQ_TAIL_FILE}\
-startSubREQCliCommandCont=${START_SUB_REQ_CLI_COMMAND_CONT}\
"]