mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
New Dockerfiles (#2325)
This commit is contained in:
committed by
Quanzheng Long
parent
f7d97748a8
commit
03c631ec98
@@ -0,0 +1 @@
|
||||
vendor/
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
ARG TARGET=server
|
||||
|
||||
# Build Cadence binaries
|
||||
FROM golang:1.12.7-alpine AS builder
|
||||
|
||||
RUN apk add --update --no-cache ca-certificates make git curl mercurial bzr
|
||||
|
||||
WORKDIR /go/src/github.com/uber/cadence
|
||||
|
||||
RUN curl https://raw.githubusercontent.com/golang/dep/master/install.sh | INSTALL_DIRECTORY=/usr/local/bin sh
|
||||
COPY Gopkg.* ./
|
||||
RUN dep ensure -v -vendor-only
|
||||
|
||||
COPY . .
|
||||
RUN sed -i 's/dep-ensured//g' Makefile
|
||||
RUN CGO_ENABLED=0 make copyright cadence-cassandra-tool cadence-sql-tool cadence cadence-server
|
||||
|
||||
|
||||
# Download dockerize
|
||||
FROM alpine:3.10 AS dockerize
|
||||
|
||||
RUN apk add --no-cache openssl
|
||||
|
||||
ENV DOCKERIZE_VERSION v0.6.1
|
||||
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||
&& tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||
&& rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz
|
||||
|
||||
|
||||
# Alpine base image
|
||||
FROM alpine:3.10 AS alpine
|
||||
|
||||
RUN apk add --update --no-cache ca-certificates tzdata bash curl
|
||||
|
||||
# set up nsswitch.conf for Go's "netgo" implementation
|
||||
# https://github.com/gliderlabs/docker-alpine/issues/367#issuecomment-424546457
|
||||
RUN test ! -e /etc/nsswitch.conf && echo 'hosts: files dns' > /etc/nsswitch.conf
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
|
||||
# Cadence server
|
||||
FROM alpine AS cadence-server
|
||||
|
||||
ENV CADENCE_HOME /etc/cadence
|
||||
RUN mkdir -p /etc/cadence
|
||||
|
||||
COPY --from=dockerize /usr/local/bin/dockerize /usr/local/bin
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence-cassandra-tool /usr/local/bin
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence-sql-tool /usr/local/bin
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence /usr/local/bin
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence-server /usr/local/bin
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/schema /etc/cadence/schema
|
||||
|
||||
COPY docker/entrypoint.sh /docker-entrypoint.sh
|
||||
COPY config/dynamicconfig /etc/cadence/config/dynamicconfig
|
||||
COPY docker/config_template.yaml /etc/cadence/config
|
||||
|
||||
WORKDIR /etc/cadence
|
||||
|
||||
ENV SERVICES="history,matching,frontend,worker"
|
||||
|
||||
EXPOSE 7933 7934 7935 7939
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
CMD dockerize -template /etc/cadence/config/config_template.yaml:/etc/cadence/config/docker.yaml cadence-server --root $CADENCE_HOME --env docker start --services=$SERVICES
|
||||
|
||||
|
||||
# All-in-one Cadence server
|
||||
FROM cadence-server AS cadence-allinone
|
||||
|
||||
RUN apk add --update --no-cache ca-certificates py-pip mysql-client
|
||||
RUN pip install cqlsh
|
||||
|
||||
COPY docker/start.sh /start.sh
|
||||
|
||||
CMD /start.sh
|
||||
|
||||
|
||||
# Cadence CLI
|
||||
FROM alpine AS cadence-cli
|
||||
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence /usr/local/bin
|
||||
|
||||
ENTRYPOINT ["cadence"]
|
||||
|
||||
|
||||
# Final image
|
||||
FROM cadence-${TARGET}
|
||||
@@ -1,72 +0,0 @@
|
||||
# Copyright (c) 2017 Uber Technologies, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
|
||||
# Build cadence binaries
|
||||
FROM golang:1.12.1 as builder
|
||||
|
||||
# Specify the cadence version to be built into this docker image
|
||||
# See https://github.com/uber/cadence/tags
|
||||
ARG git_branch
|
||||
RUN if [ -z "$git_branch" ]; then echo "ERROR: git_branch NOT SET. Usage: docker build . --build-arg git_branch=YOUR_CHECKOUT_BRANCH"; exit 1; else : ; fi
|
||||
|
||||
RUN go get -u github.com/golang/dep/cmd/dep
|
||||
RUN go get -u golang.org/x/lint/golint
|
||||
|
||||
# get and compile cadence-server
|
||||
RUN git clone https://github.com/uber/cadence.git /go/src/github.com/uber/cadence
|
||||
RUN cd /go/src/github.com/uber/cadence && git fetch && git checkout $git_branch && git rev-parse HEAD && make bins_nothrift
|
||||
|
||||
|
||||
# Final Cadence image
|
||||
FROM debian:jessie
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
gettext-base \
|
||||
wget \
|
||||
vim \
|
||||
tcpdump \
|
||||
netcat \
|
||||
python-pip \
|
||||
mysql-client \
|
||||
curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pip install cqlsh
|
||||
|
||||
RUN mkdir /cadence
|
||||
ENV CADENCE_HOME /cadence
|
||||
|
||||
EXPOSE 7933 7934 7935 7939
|
||||
|
||||
COPY ./start.sh $CADENCE_HOME/start.sh
|
||||
COPY ./config_template.yaml $CADENCE_HOME/config/docker_template_cassandra.yaml
|
||||
COPY ./config_template_mysql.yaml $CADENCE_HOME/config/docker_template_mysql.yaml
|
||||
RUN mkdir $CADENCE_HOME/config/dynamicconfig/
|
||||
COPY ./dynamicconfig/development_es.yaml $CADENCE_HOME/config/dynamicconfig/development_es.yaml
|
||||
RUN chmod a+x $CADENCE_HOME/start.sh
|
||||
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence-cassandra-tool /cadence
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence-sql-tool /cadence
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence /cadence
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/cadence-server /cadence
|
||||
COPY --from=builder /go/src/github.com/uber/cadence/schema/ /cadence/schema/
|
||||
|
||||
WORKDIR $CADENCE_HOME
|
||||
CMD ./start.sh $CADENCE_HOME
|
||||
@@ -1,21 +0,0 @@
|
||||
FROM golang:1.12.1 as go-builder
|
||||
|
||||
RUN apt-get update && apt-get install -y git
|
||||
|
||||
# Install glide
|
||||
WORKDIR $GOPATH/src/github.com/Masterminds
|
||||
RUN git clone https://github.com/Masterminds/glide.git
|
||||
RUN cd glide && git checkout v0.12.3 && make bootstrap-dist && make install
|
||||
|
||||
ENV CADENCE_HOME $GOPATH/src/github.com/uber/cadence
|
||||
RUN git clone https://github.com/uber/cadence.git $CADENCE_HOME
|
||||
WORKDIR $CADENCE_HOME
|
||||
RUN cd $CADENCE_HOME && make cadence
|
||||
|
||||
FROM phusion/baseimage:0.10.1
|
||||
|
||||
COPY --from=go-builder /go/src/github.com/uber/cadence/cadence .
|
||||
COPY --from=go-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
ENTRYPOINT ["./cadence"]
|
||||
|
||||
+135
-96
@@ -1,121 +1,160 @@
|
||||
log:
|
||||
stdout: true
|
||||
level: "${LOG_LEVEL}"
|
||||
stdout: true
|
||||
level: {{ default .Env.LOG_LEVEL "info" }}
|
||||
|
||||
persistence:
|
||||
defaultStore: cass-default
|
||||
visibilityStore: cass-visibility
|
||||
numHistoryShards: ${NUM_HISTORY_SHARDS}
|
||||
datastores:
|
||||
cass-default:
|
||||
cassandra:
|
||||
hosts: "${CASSANDRA_SEEDS}"
|
||||
keyspace: "${KEYSPACE}"
|
||||
consistency: "${CASSANDRA_CONSISTENCY}"
|
||||
cass-visibility:
|
||||
cassandra:
|
||||
hosts: "${CASSANDRA_SEEDS}"
|
||||
keyspace: "${VISIBILITY_KEYSPACE}"
|
||||
consistency: "${CASSANDRA_CONSISTENCY}"
|
||||
numHistoryShards: {{ default .Env.NUM_HISTORY_SHARDS "4" }}
|
||||
defaultStore: default
|
||||
visibilityStore: visibility
|
||||
datastores:
|
||||
{{- $db := default .Env.DB "cassandra" | lower -}}
|
||||
{{- if eq $db "cassandra" }}
|
||||
default:
|
||||
cassandra:
|
||||
hosts: {{ default .Env.CASSANDRA_SEEDS "" }}
|
||||
keyspace: {{ default .Env.KEYSPACE "cadence" }}
|
||||
consistency: {{ default .Env.CASSANDRA_CONSISTENCY "One" }}
|
||||
visibility:
|
||||
cassandra:
|
||||
hosts: {{ default .Env.CASSANDRA_SEEDS "" }}
|
||||
keyspace: {{ default .Env.VISIBILITY_KEYSPACE "cadence" }}
|
||||
consistency: {{ default .Env.CASSANDRA_CONSISTENCY "One" }}
|
||||
{{- else if eq $db "mysql" }}
|
||||
default:
|
||||
sql:
|
||||
driverName: "mysql"
|
||||
databaseName: {{ default .Env.DBNAME "cadence" }}
|
||||
connectAddr: "{{ default .Env.MYSQL_SEEDS "" }}:{{ default .Env.DB_PORT "3306" }}"
|
||||
connectProtocol: "tcp"
|
||||
user: {{ default .Env.MYSQL_USER "" }}
|
||||
password: {{ default .Env.MYSQL_PWD "" }}
|
||||
visibility:
|
||||
sql:
|
||||
driverName: "mysql"
|
||||
databaseName: {{ default .Env.VISIBILITY_DBNAME "cadence_visibility" }}
|
||||
connectAddr: "{{ default .Env.MYSQL_SEEDS "" }}:{{ default .Env.DB_PORT "3306" }}"
|
||||
connectProtocol: "tcp"
|
||||
user: {{ default .Env.MYSQL_USER "" }}
|
||||
password: {{ default .Env.MYSQL_PWD "" }}
|
||||
{{- end }}
|
||||
|
||||
ringpop:
|
||||
name: cadence
|
||||
bootstrapMode: hosts
|
||||
bootstrapHosts: ${RINGPOP_SEEDS_JSON_ARRAY}
|
||||
maxJoinDuration: 30s
|
||||
name: cadence
|
||||
bootstrapMode: hosts
|
||||
{{- if .Env.RINGPOP_SEEDS }}
|
||||
bootstrapHosts:
|
||||
{{- range $seed := (split .Env.RINGPOP_SEEDS ",") }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
bootstrapHosts:
|
||||
- {{ .Env.HOST_IP }}:7933
|
||||
- {{ .Env.HOST_IP }}:7934
|
||||
- {{ .Env.HOST_IP }}:7935
|
||||
- {{ .Env.HOST_IP }}:7939
|
||||
{{- end }}
|
||||
maxJoinDuration: 30s
|
||||
|
||||
services:
|
||||
frontend:
|
||||
rpc:
|
||||
port: 7933
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-frontend"
|
||||
frontend:
|
||||
rpc:
|
||||
port: 7933
|
||||
bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }}
|
||||
{{- if .Env.STATSD_ENDPOINT }}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: {{ .Env.STATSD_ENDPOINT }}
|
||||
prefix: "cadence-frontend"
|
||||
{{- end }}
|
||||
|
||||
matching:
|
||||
rpc:
|
||||
port: 7935
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-matching"
|
||||
matching:
|
||||
rpc:
|
||||
port: 7935
|
||||
bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }}
|
||||
{{- if .Env.STATSD_ENDPOINT }}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: {{ .Env.STATSD_ENDPOINT }}
|
||||
prefix: "cadence-matching"
|
||||
{{- end }}
|
||||
|
||||
history:
|
||||
rpc:
|
||||
port: 7934
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-history"
|
||||
history:
|
||||
rpc:
|
||||
port: 7934
|
||||
bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }}
|
||||
{{- if .Env.STATSD_ENDPOINT }}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: {{ .Env.STATSD_ENDPOINT }}
|
||||
prefix: "cadence-history"
|
||||
{{- end }}
|
||||
|
||||
worker:
|
||||
rpc:
|
||||
port: 7939
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-worker"
|
||||
worker:
|
||||
rpc:
|
||||
port: 7939
|
||||
bindOnIP: {{ default .Env.BIND_ON_IP "127.0.0.1" }}
|
||||
{{- if .Env.STATSD_ENDPOINT }}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: {{ .Env.STATSD_ENDPOINT }}
|
||||
prefix: "cadence-worker"
|
||||
{{- end }}
|
||||
|
||||
clusterMetadata:
|
||||
enableGlobalDomain: false
|
||||
failoverVersionIncrement: 10
|
||||
masterClusterName: "active"
|
||||
currentClusterName: "active"
|
||||
clusterInformation:
|
||||
active:
|
||||
enabled: true
|
||||
initialFailoverVersion: 0
|
||||
rpcName: "cadence-frontend"
|
||||
rpcAddress: "127.0.0.1:7933"
|
||||
enableGlobalDomain: false
|
||||
failoverVersionIncrement: 10
|
||||
masterClusterName: "active"
|
||||
currentClusterName: "active"
|
||||
clusterInformation:
|
||||
active:
|
||||
enabled: true
|
||||
initialFailoverVersion: 0
|
||||
rpcName: "cadence-frontend"
|
||||
rpcAddress: "127.0.0.1:7933"
|
||||
|
||||
dcRedirectionPolicy:
|
||||
policy: "noop"
|
||||
toDC: ""
|
||||
policy: "noop"
|
||||
toDC: ""
|
||||
|
||||
archival:
|
||||
status: "enabled"
|
||||
enableReadFromArchival: true
|
||||
defaultBucket: "cadence-development"
|
||||
filestore:
|
||||
storeDirectory: "/tmp/development/blobstore/"
|
||||
status: "enabled"
|
||||
enableReadFromArchival: true
|
||||
defaultBucket: "cadence-development"
|
||||
customBuckets:
|
||||
- "custom-bucket-1"
|
||||
- "custom-bucket-2"
|
||||
filestore:
|
||||
storeDirectory: "/tmp/development/blobstore/"
|
||||
defaultBucket: "cadence-development"
|
||||
customBuckets:
|
||||
- "custom-bucket-1"
|
||||
- "custom-bucket-2"
|
||||
|
||||
kafka:
|
||||
tls:
|
||||
enabled: false
|
||||
clusters:
|
||||
test:
|
||||
brokers:
|
||||
- ${KAFKA_SEEDS}:9092
|
||||
topics:
|
||||
cadence-visibility-dev:
|
||||
cluster: test
|
||||
cadence-visibility-dev-dlq:
|
||||
cluster: test
|
||||
applications:
|
||||
visibility:
|
||||
topic: cadence-visibility-dev
|
||||
dlq-topic: cadence-visibility-dev-dlq
|
||||
tls:
|
||||
enabled: false
|
||||
clusters:
|
||||
test:
|
||||
brokers:
|
||||
- {{ default .Env.KAFKA_SEEDS "" }}:9092
|
||||
topics:
|
||||
cadence-visibility-dev:
|
||||
cluster: test
|
||||
cadence-visibility-dev-dlq:
|
||||
cluster: test
|
||||
applications:
|
||||
visibility:
|
||||
topic: cadence-visibility-dev
|
||||
dlq-topic: cadence-visibility-dev-dlq
|
||||
|
||||
elasticsearch:
|
||||
enable: false
|
||||
url:
|
||||
scheme: "http"
|
||||
host: "${ES_SEEDS}:9200"
|
||||
indices:
|
||||
visibility: cadence-visibility-dev
|
||||
enable: false
|
||||
url:
|
||||
scheme: "http"
|
||||
host: "{{ default .Env.ES_SEEDS "" }}:9200"
|
||||
indices:
|
||||
visibility: cadence-visibility-dev
|
||||
|
||||
publicClient:
|
||||
hostPort: ${BIND_ON_IP}:7933
|
||||
hostPort: {{ default .Env.BIND_ON_IP "127.0.0.1" }}:7933
|
||||
|
||||
dynamicConfigClient:
|
||||
filepath: ${DYNAMIC_CONFIG_FILE_PATH}
|
||||
pollInterval: "60s"
|
||||
filepath: {{ default .Env.DYNAMIC_CONFIG_FILE_PATH "/etc/cadence/config/dynamicconfig" }}
|
||||
pollInterval: "60s"
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
log:
|
||||
stdout: true
|
||||
level: "${LOG_LEVEL}"
|
||||
|
||||
persistence:
|
||||
defaultStore: mysql-default
|
||||
visibilityStore: mysql-visibility
|
||||
numHistoryShards: ${NUM_HISTORY_SHARDS}
|
||||
datastores:
|
||||
mysql-default:
|
||||
sql:
|
||||
driverName: "mysql"
|
||||
databaseName: "${DBNAME}"
|
||||
connectAddr: "${MYSQL_SEEDS}:3306"
|
||||
connectProtocol: "tcp"
|
||||
user: "${MYSQL_USER}"
|
||||
password: "${MYSQL_PWD}"
|
||||
mysql-visibility:
|
||||
sql:
|
||||
driverName: "mysql"
|
||||
databaseName: "${VISIBILITY_DBNAME}"
|
||||
connectAddr: "${MYSQL_SEEDS}:3306"
|
||||
connectProtocol: "tcp"
|
||||
user: "${MYSQL_USER}"
|
||||
password: "${MYSQL_PWD}"
|
||||
|
||||
ringpop:
|
||||
name: cadence
|
||||
bootstrapMode: hosts
|
||||
bootstrapHosts: ${RINGPOP_SEEDS_JSON_ARRAY}
|
||||
maxJoinDuration: 30s
|
||||
|
||||
services:
|
||||
frontend:
|
||||
rpc:
|
||||
port: 7933
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-frontend"
|
||||
|
||||
matching:
|
||||
rpc:
|
||||
port: 7935
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-matching"
|
||||
|
||||
history:
|
||||
rpc:
|
||||
port: 7934
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-history"
|
||||
|
||||
worker:
|
||||
rpc:
|
||||
port: 7939
|
||||
bindOnIP: ${BIND_ON_IP}
|
||||
metrics:
|
||||
statsd:
|
||||
hostPort: "${STATSD_ENDPOINT}"
|
||||
prefix: "cadence-worker"
|
||||
|
||||
clusterMetadata:
|
||||
enableGlobalDomain: false
|
||||
failoverVersionIncrement: 10
|
||||
masterClusterName: "active"
|
||||
currentClusterName: "active"
|
||||
clusterInformation:
|
||||
active:
|
||||
enabled: true
|
||||
initialFailoverVersion: 0
|
||||
rpcName: "cadence-frontend"
|
||||
rpcAddress: "127.0.0.1:7933"
|
||||
|
||||
dcRedirectionPolicy:
|
||||
policy: "noop"
|
||||
toDC: ""
|
||||
|
||||
archival:
|
||||
status: "enabled"
|
||||
enableReadFromArchival: true
|
||||
defaultBucket: "cadence-development"
|
||||
filestore:
|
||||
storeDirectory: "/tmp/development/blobstore/"
|
||||
defaultBucket: "cadence-development"
|
||||
customBuckets:
|
||||
- "custom-bucket-1"
|
||||
- "custom-bucket-2"
|
||||
|
||||
kafka:
|
||||
tls:
|
||||
enabled: false
|
||||
clusters:
|
||||
test:
|
||||
brokers:
|
||||
- ${KAFKA_SEEDS}:9092
|
||||
topics:
|
||||
cadence-visibility-dev:
|
||||
cluster: test
|
||||
cadence-visibility-dev-dlq:
|
||||
cluster: test
|
||||
applications:
|
||||
visibility:
|
||||
topic: cadence-visibility-dev
|
||||
dlq-topic: cadence-visibility-dev-dlq
|
||||
|
||||
elasticsearch:
|
||||
enable: false
|
||||
url:
|
||||
scheme: "http"
|
||||
host: "${ES_SEEDS}:9200"
|
||||
indices:
|
||||
visibility: cadence-visibility-dev
|
||||
|
||||
publicClient:
|
||||
hostPort: ${BIND_ON_IP}:7933
|
||||
|
||||
dynamicConfigClient:
|
||||
filepath: ${DYNAMIC_CONFIG_FILE_PATH}
|
||||
pollInterval: "60s"
|
||||
@@ -1,29 +0,0 @@
|
||||
frontend.enableClientVersionCheck:
|
||||
- value: true
|
||||
system.enableVisibilityToKafka:
|
||||
- value: true
|
||||
system.enableReadVisibilityFromES:
|
||||
- value: true
|
||||
frontend.validSearchAttributes:
|
||||
- value:
|
||||
DomainID: 1
|
||||
WorkflowID: 1
|
||||
RunID: 1
|
||||
WorkflowType: 1
|
||||
StartTime: 2
|
||||
ExecutionTime: 2
|
||||
CloseTime: 2
|
||||
CloseStatus: 2
|
||||
HistoryLength: 2
|
||||
CustomStringField: 0
|
||||
CustomKeywordField: 1
|
||||
CustomIntField: 2
|
||||
CustomBoolField: 3
|
||||
CustomDoubleField: 4
|
||||
CustomDatetimeField: 5
|
||||
project: 1
|
||||
service: 1
|
||||
environment: 1
|
||||
addon: 1
|
||||
addon-type: 1
|
||||
user: 1
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
export HOST_IP=`hostname -i`
|
||||
|
||||
if [ "$BIND_ON_LOCALHOST" == true ] || [ "$BIND_ON_IP" == "127.0.0.1" ]; then
|
||||
export BIND_ON_IP="127.0.0.1"
|
||||
export HOST_IP="127.0.0.1"
|
||||
elif [ -z "$BIND_ON_IP" ]; then
|
||||
# not binding to localhost and bind_on_ip is empty - use default host ip addr
|
||||
export BIND_ON_IP=$HOST_IP
|
||||
elif [ "$BIND_ON_IP" != "0.0.0.0" ]; then
|
||||
# binding to a user specified addr, make sure HOST_IP also uses the same addr
|
||||
export HOST_IP=$BIND_ON_IP
|
||||
fi
|
||||
|
||||
# this env variable is deprecated
|
||||
export BIND_ON_LOCALHOST=false
|
||||
|
||||
exec "$@"
|
||||
Regular → Executable
+14
-80
@@ -1,66 +1,39 @@
|
||||
#!/bin/bash -x
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2017 Uber Technologies, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
|
||||
CADENCE_HOME=$1
|
||||
DB="${DB:-cassandra}"
|
||||
CFG_TEMPLATE=docker_template_$DB.yaml
|
||||
ENABLE_ES="${ENABLE_ES:-false}"
|
||||
ES_PORT="${ES_PORT:-9200}"
|
||||
SERVICES="${SERVICES:-history,matching,frontend,worker}"
|
||||
RF=${RF:-1}
|
||||
export LOG_LEVEL="${LOG_LEVEL:-info}"
|
||||
export NUM_HISTORY_SHARDS=${NUM_HISTORY_SHARDS:-4}
|
||||
|
||||
# cassandra env
|
||||
export KEYSPACE="${KEYSPACE:-cadence}"
|
||||
export VISIBILITY_KEYSPACE="${VISIBILITY_KEYSPACE:-cadence_visibility}"
|
||||
export CASSANDRA_CONSISTENCY="${CASSANDRA_CONSISTENCY:-One}"
|
||||
|
||||
# mysql env
|
||||
export DBNAME="${DBNAME:-cadence}"
|
||||
export VISIBILITY_DBNAME="${VISIBILITY_DBNAME:-cadence_visibility}"
|
||||
export DB_PORT=${DB_PORT:-3306}
|
||||
|
||||
|
||||
setup_cassandra_schema() {
|
||||
SCHEMA_DIR=$CADENCE_HOME/schema/cassandra/cadence/versioned
|
||||
$CADENCE_HOME/cadence-cassandra-tool --ep $CASSANDRA_SEEDS create -k $KEYSPACE --rf $RF
|
||||
$CADENCE_HOME/cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $KEYSPACE setup-schema -v 0.0
|
||||
$CADENCE_HOME/cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $KEYSPACE update-schema -d $SCHEMA_DIR
|
||||
cadence-cassandra-tool --ep $CASSANDRA_SEEDS create -k $KEYSPACE --rf $RF
|
||||
cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $KEYSPACE setup-schema -v 0.0
|
||||
cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $KEYSPACE update-schema -d $SCHEMA_DIR
|
||||
VISIBILITY_SCHEMA_DIR=$CADENCE_HOME/schema/cassandra/visibility/versioned
|
||||
$CADENCE_HOME/cadence-cassandra-tool --ep $CASSANDRA_SEEDS create -k $VISIBILITY_KEYSPACE --rf $RF
|
||||
$CADENCE_HOME/cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $VISIBILITY_KEYSPACE setup-schema -v 0.0
|
||||
$CADENCE_HOME/cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $VISIBILITY_KEYSPACE update-schema -d $VISIBILITY_SCHEMA_DIR
|
||||
cadence-cassandra-tool --ep $CASSANDRA_SEEDS create -k $VISIBILITY_KEYSPACE --rf $RF
|
||||
cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $VISIBILITY_KEYSPACE setup-schema -v 0.0
|
||||
cadence-cassandra-tool --ep $CASSANDRA_SEEDS -k $VISIBILITY_KEYSPACE update-schema -d $VISIBILITY_SCHEMA_DIR
|
||||
}
|
||||
|
||||
setup_mysql_schema() {
|
||||
SCHEMA_DIR=$CADENCE_HOME/schema/mysql/v57/cadence/versioned
|
||||
$CADENCE_HOME/cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD create --db $DBNAME
|
||||
$CADENCE_HOME/cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $DBNAME setup-schema -v 0.0
|
||||
$CADENCE_HOME/cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $DBNAME update-schema -d $SCHEMA_DIR
|
||||
cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD create --db $DBNAME
|
||||
cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $DBNAME setup-schema -v 0.0
|
||||
cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $DBNAME update-schema -d $SCHEMA_DIR
|
||||
VISIBILITY_SCHEMA_DIR=$CADENCE_HOME/schema/mysql/v57/visibility/versioned
|
||||
$CADENCE_HOME/cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD create --db $VISIBILITY_DBNAME
|
||||
$CADENCE_HOME/cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME setup-schema -v 0.0
|
||||
$CADENCE_HOME/cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME update-schema -d $VISIBILITY_SCHEMA_DIR
|
||||
cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD create --db $VISIBILITY_DBNAME
|
||||
cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME setup-schema -v 0.0
|
||||
cadence-sql-tool --ep $MYSQL_SEEDS -u $MYSQL_USER --pw $MYSQL_PWD --db $VISIBILITY_DBNAME update-schema -d $VISIBILITY_SCHEMA_DIR
|
||||
}
|
||||
|
||||
setup_es_template() {
|
||||
@@ -128,48 +101,9 @@ wait_for_db() {
|
||||
fi
|
||||
}
|
||||
|
||||
json_array() {
|
||||
echo -n '['
|
||||
while [ $# -gt 0 ]; do
|
||||
x=${1//\\/\\\\}
|
||||
echo -n \"${x//\"/\\\"}\"
|
||||
[ $# -gt 1 ] && echo -n ', '
|
||||
shift
|
||||
done
|
||||
echo ']'
|
||||
}
|
||||
|
||||
init_env() {
|
||||
export HOST_IP=`hostname --ip-address`
|
||||
|
||||
if [ "$BIND_ON_LOCALHOST" == true ] || [ "$BIND_ON_IP" == "127.0.0.1" ]; then
|
||||
export BIND_ON_IP="127.0.0.1"
|
||||
export HOST_IP="127.0.0.1"
|
||||
elif [ -z "$BIND_ON_IP" ]; then
|
||||
# not binding to localhost and bind_on_ip is empty - use default host ip addr
|
||||
export BIND_ON_IP=$HOST_IP
|
||||
elif [ "$BIND_ON_IP" != "0.0.0.0" ]; then
|
||||
# binding to a user specified addr, make sure HOST_IP also uses the same addr
|
||||
export HOST_IP=$BIND_ON_IP
|
||||
fi
|
||||
|
||||
// this env variable is deprecated
|
||||
export BIND_ON_LOCALHOST=false
|
||||
|
||||
if [ -z "$RINGPOP_SEEDS" ]; then
|
||||
export RINGPOP_SEEDS_JSON_ARRAY="[\"$HOST_IP:7933\",\"$HOST_IP:7934\",\"$HOST_IP:7935\",\"$HOST_IP:7939\"]"
|
||||
else
|
||||
array=(${RINGPOP_SEEDS//,/ })
|
||||
export RINGPOP_SEEDS_JSON_ARRAY=$(json_array "${array[@]}")
|
||||
fi
|
||||
}
|
||||
|
||||
init_env
|
||||
wait_for_db
|
||||
if [ "$SKIP_SCHEMA_SETUP" != true ]; then
|
||||
setup_schema
|
||||
fi
|
||||
|
||||
# fix up config
|
||||
envsubst < config/$CFG_TEMPLATE > config/docker.yaml
|
||||
./cadence-server --root $CADENCE_HOME --env docker start --services=$SERVICES
|
||||
dockerize -template /etc/cadence/config/config_template.yaml:/etc/cadence/config/docker.yaml cadence-server --root $CADENCE_HOME --env docker start --services=$SERVICES
|
||||
|
||||
Reference in New Issue
Block a user