import files
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
MAILCATCHER_SERVICE_1080_TAGS=urlprefix-mailcatcher.${APP_DOMAIN}/
|
||||
TOGGLE_API_SERVICE_80_TAGS=urlprefix-toggle-api.${APP_DOMAIN}/
|
||||
TOGGLE_UI_SERVICE_80_TAGS=urlprefix-toggle-ui.${APP_DOMAIN}/
|
||||
TOGGLE__API_BASE_URL=http://toggle-api.${APP_DOMAIN}
|
||||
@@ -0,0 +1,26 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
mailcatcher:
|
||||
image: 1001pharmadev/mailcatcher:latest
|
||||
labels:
|
||||
- SERVICE_1025_CHECK_TCP=true
|
||||
- SERVICE_1025_NAME=${COMPOSE_SERVICE_NAME}-mailcatcher-1025
|
||||
- SERVICE_1080_CHECK_HTTP=/
|
||||
- SERVICE_1080_NAME=${COMPOSE_SERVICE_NAME}-mailcatcher-1080
|
||||
- SERVICE_1080_TAGS=${MAILCATCHER_SERVICE_1080_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 1025
|
||||
- 1080
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,43 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
toggle-api:
|
||||
image: 1001pharmadev/qandidate-toggle-api:latest
|
||||
depends_on:
|
||||
- redis
|
||||
environment:
|
||||
- TOGGLE__REDIS_DSN=tcp://redis:6379
|
||||
labels:
|
||||
- SERVICE_80_CHECK_HTTP=/toggles
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-toggle-api-80
|
||||
- SERVICE_80_TAGS=${TOGGLE_API_SERVICE_80_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 80
|
||||
restart: always
|
||||
toggle-ui:
|
||||
image: 1001pharmadev/qandidate-toggle-ui:latest
|
||||
depends_on:
|
||||
- toggle-api
|
||||
environment:
|
||||
- TOGGLE__API_BASE_URL=${TOGGLE__API_BASE_URL}
|
||||
labels:
|
||||
- SERVICE_80_CHECK_HTTP=/
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-toggle-ui-80
|
||||
- SERVICE_80_TAGS=${TOGGLE_UI_SERVICE_80_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 80
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1 @@
|
||||
SYSCTL_CONFIG=vm.max_map_count=262144 vm.overcommit_memory=1 fs.file-max=8388608 net.core.somaxconn=1024
|
||||
@@ -0,0 +1,14 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
sysctl:
|
||||
command: sh -c 'sysctl -q -w ${SYSCTL_CONFIG} ||:'
|
||||
image: alpine:latest
|
||||
networks:
|
||||
- private
|
||||
privileged: true
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1,19 @@
|
||||
.PHONY: base
|
||||
base: docker-network-create stack-base-up base-ssh-add
|
||||
|
||||
.PHONY: ssh-add
|
||||
ssh-add: base-ssh-add
|
||||
|
||||
.PHONY: base-ssh-add
|
||||
base-ssh-add: base-ssh-key
|
||||
$(eval SSH_PRIVATE_KEYS := $(foreach file,$(SSH_DIR)/id_rsa $(filter-out $(wildcard $(SSH_DIR)/id_rsa),$(wildcard $(SSH_DIR)/*)),$(if $(shell grep "PRIVATE KEY" $(file) 2>/dev/null),$(notdir $(file)))))
|
||||
$(call docker-run,$(DOCKER_SSH_AUTH) $(DOCKER_IMAGE_CLI),sh -c "$(foreach file,$(patsubst %,$(SSH_DIR)/%,$(SSH_PRIVATE_KEYS)),ssh-add -l |grep -qw $$(ssh-keygen -lf $(file) 2>/dev/null |awk '{print $$2}') 2>/dev/null || ssh-add $(file) ||: &&) true")
|
||||
|
||||
.PHONY: base-ssh-key
|
||||
base-ssh-key: stack-base-up
|
||||
ifneq (,$(filter true,$(DRONE)))
|
||||
$(call exec,[ ! -d $(SSH_DIR) ] && mkdir -p $(SSH_DIR) && chown $(UID) $(SSH_DIR) && chmod 0700 $(SSH_DIR) ||:)
|
||||
else
|
||||
$(eval DOCKER_RUN_VOLUME += -v $(SSH_DIR):$(SSH_DIR))
|
||||
endif
|
||||
$(if $(SSH_KEY),$(eval export SSH_KEY ?= $(SSH_KEY)) $(call docker-run,$(DOCKER_IMAGE_CLI),echo -e "$$SSH_KEY" > $(SSH_DIR)/${COMPOSE_PROJECT_NAME}_id_rsa && chmod 0400 $(SSH_DIR)/${COMPOSE_PROJECT_NAME}_id_rsa && chown $(UID) $(SSH_DIR)/${COMPOSE_PROJECT_NAME}_id_rsa ||:))
|
||||
@@ -0,0 +1,61 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
cli:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/cli
|
||||
- GIT_AUTHOR_NAME=${GIT_AUTHOR_NAME}
|
||||
- GIT_AUTHOR_EMAIL=${GIT_AUTHOR_EMAIL}
|
||||
- SSH_BASTION_USERNAME=${SSH_BASTION_USERNAME}
|
||||
- SSH_BASTION_HOSTNAME=${SSH_BASTION_HOSTNAME}
|
||||
- SSH_PUBLIC_HOST_KEYS=${SSH_PUBLIC_HOST_KEYS}
|
||||
- SSH_PRIVATE_IP_RANGE=${SSH_PRIVATE_IP_RANGE}
|
||||
- UID=${UID}
|
||||
- USER=${USER}
|
||||
context: ../..
|
||||
dockerfile: docker/cli/Dockerfile
|
||||
target: ${DOCKER_BUILD_TARGET}
|
||||
command: tail -f /dev/null
|
||||
container_name: ${DOCKER_NAME_CLI}
|
||||
depends_on:
|
||||
- ssh
|
||||
environment:
|
||||
- SSH_AUTH_SOCK=/tmp/ssh-agent/socket
|
||||
image: ${DOCKER_IMAGE_CLI}:${DOCKER_IMAGE_TAG}
|
||||
networks:
|
||||
- private
|
||||
restart: always
|
||||
volumes:
|
||||
- ssh:/tmp/ssh-agent:ro
|
||||
- ${MONOREPO_DIR}:${MONOREPO_DIR}:cached
|
||||
working_dir: ${MONOREPO_DIR}
|
||||
ssh:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/ssh
|
||||
- UID=${UID}
|
||||
- USER=${USER}
|
||||
context: ../..
|
||||
dockerfile: docker/ssh/Dockerfile
|
||||
target: ${DOCKER_BUILD_TARGET}
|
||||
container_name: ${DOCKER_NAME_SSH}
|
||||
image: ${DOCKER_IMAGE_SSH}:${DOCKER_IMAGE_TAG}
|
||||
networks:
|
||||
- private
|
||||
restart: always
|
||||
volumes:
|
||||
- ssh:/tmp/ssh-agent
|
||||
|
||||
volumes:
|
||||
ssh:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: tmpfs
|
||||
device: tmpfs
|
||||
o: uid=${UID}
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1 @@
|
||||
develop ?= redmine
|
||||
@@ -0,0 +1 @@
|
||||
drone ?= drone/drone drone/drone-runner-docker drone/gc
|
||||
@@ -0,0 +1,9 @@
|
||||
DRONE_GITHUB_CLIENT_ID=github_client_id
|
||||
DRONE_GITHUB_CLIENT_SECRET=github_client_secret
|
||||
DRONE_RPC_SECRET=drone_rpc_secret
|
||||
DRONE_RUNNER_CAPACITY=1
|
||||
DRONE_SERVER_HOST=drone.${APP_DOMAIN}
|
||||
DRONE_SERVER_PROTO=http
|
||||
DRONE_SERVER_SERVICE_80_TAGS=urlprefix-${DRONE_SERVER_HOST}/
|
||||
DRONE_USER_CREATE=username:gitaccount,admin:true
|
||||
DRONE_USER_FILTER=gitaccount
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-runner-docker:
|
||||
image: drone/drone-runner-docker:1.1
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-runner-docker:
|
||||
image: drone/drone-runner-docker:1.2
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-runner-docker:
|
||||
image: drone/drone-runner-docker:1.3
|
||||
@@ -0,0 +1,7 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-runner-docker:
|
||||
environment:
|
||||
- DRONE_DEBUG=true
|
||||
- DRONE_TRACE=true
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-runner-docker:
|
||||
image: drone/drone-runner-docker:latest
|
||||
@@ -0,0 +1,24 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-runner-docker:
|
||||
depends_on:
|
||||
- drone
|
||||
environment:
|
||||
- DRONE_RPC_SECRET=${DRONE_RPC_SECRET}
|
||||
- DRONE_RPC_HOST=drone
|
||||
- DRONE_RPC_PROTO=http
|
||||
- DRONE_RUNNER_CAPACITY=${DRONE_RUNNER_CAPACITY}
|
||||
- DRONE_RUNNER_NAME=${HOSTNAME}
|
||||
labels:
|
||||
- SERVICE_3000_IGNORE=true
|
||||
networks:
|
||||
- private
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone:
|
||||
image: drone/drone:1.6
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone:
|
||||
image: drone/drone:1.7
|
||||
@@ -0,0 +1,7 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone:
|
||||
environment:
|
||||
- DRONE_LOGS_DEBUG=true
|
||||
- DRONE_LOGS_TRACE=true
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone:
|
||||
image: drone/drone:latest
|
||||
@@ -0,0 +1,44 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone:
|
||||
environment:
|
||||
- DRONE_GIT_ALWAYS_AUTH=false
|
||||
- DRONE_GITHUB_SERVER=https://github.com
|
||||
- DRONE_GITHUB_CLIENT_ID=${DRONE_GITHUB_CLIENT_ID}
|
||||
- DRONE_GITHUB_CLIENT_SECRET=${DRONE_GITHUB_CLIENT_SECRET}
|
||||
- DRONE_LOGS_COLOR=true
|
||||
- DRONE_LOGS_PRETTY=true
|
||||
- DRONE_PROMETHEUS_ANONYMOUS_ACCESS=true
|
||||
- DRONE_RPC_SECRET=${DRONE_RPC_SECRET}
|
||||
- DRONE_SERVER_HOST=${DRONE_SERVER_HOST}
|
||||
- DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO}
|
||||
- DRONE_TLS_AUTOCERT=true
|
||||
- DRONE_USER_CREATE=${DRONE_USER_CREATE}
|
||||
- DRONE_USER_FILTER=${DRONE_USER_FILTER}
|
||||
labels:
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-drone-80
|
||||
- SERVICE_80_CHECK_TCP=true
|
||||
- SERVICE_80_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_80_TAGS=${DRONE_SERVER_SERVICE_80_TAGS}
|
||||
- SERVICE_443_IGNORE=true
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 80
|
||||
- 443
|
||||
restart: always
|
||||
volumes:
|
||||
- drone:/data
|
||||
|
||||
volumes:
|
||||
drone:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-gc:
|
||||
image: drone/gc:1.0
|
||||
@@ -0,0 +1,8 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-gc:
|
||||
environment:
|
||||
- GC_DEBUG=true
|
||||
- GC_DEBUG_COLOR=true
|
||||
- GC_DEBUG_PRETTY=true
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-gc:
|
||||
image: drone/gc:latest
|
||||
@@ -0,0 +1,18 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
drone-gc:
|
||||
image: drone/gc:latest
|
||||
environment:
|
||||
- GC_CACHE=20gb
|
||||
- GC_INTERVAL=5m
|
||||
networks:
|
||||
- private
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1 @@
|
||||
elastic ?= elastic/curator elastic/elasticsearch elastic/kibana alpine/sysctl
|
||||
@@ -0,0 +1,11 @@
|
||||
APM_SERVER_SERVICE_8200_TAGS=urlprefix-apm.${APP_DOMAIN}/
|
||||
CURATOR_LOGFORMAT=default
|
||||
CURATOR_LOGLEVEL=INFO
|
||||
CURATOR_MASTER_ONLY=False
|
||||
CURATOR_TIMEOUT=30
|
||||
CURATOR_USE_SSL=False
|
||||
ELASTICSEARCH_HOST=elasticsearch
|
||||
ELASTICSEARCH_PORT=9200
|
||||
ELASTICSEARCH_PROTOCOL=http
|
||||
ELASTICSEARCH_SERVICE_9200_TAGS=urlprefix-elasticsearch.${APP_DOMAIN}/
|
||||
KIBANA_SERVICE_5601_TAGS=urlprefix-kibana.${APP_DOMAIN}/
|
||||
@@ -0,0 +1,29 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
apm-server-oss:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/apm-server-oss
|
||||
context: ../..
|
||||
dockerfile: docker/apm-server-oss/Dockerfile
|
||||
image: ${DOCKER_REPOSITORY}/apm-server-oss:${DOCKER_IMAGE_TAG}
|
||||
command: -c apm-server.yml --strict.perms=false -e -E output.elasticsearch.hosts=["${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"] -E output.elasticsearch.protocol=${ELASTICSEARCH_PROTOCOL} -E output.elasticsearch.username=${ELASTICSEARCH_USERNAME} -E output.elasticsearch.password=${ELASTICSEARCH_PASSWORD} -E apm-server.register.ingest.pipeline.enabled=false
|
||||
labels:
|
||||
- SERVICE_8200_CHECK_HTTP=/
|
||||
- SERVICE_8200_NAME=${COMPOSE_SERVICE_NAME}-apm-server-oss-8200
|
||||
- SERVICE_8200_TAGS=${APM_SERVER_SERVICE_8200_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 8200
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,27 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
apm-server:
|
||||
image: docker.elastic.co/apm/apm-server:7.4.2
|
||||
command: -c apm-server.yml --strict.perms=false -e -E output.elasticsearch.hosts=["${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"] -E output.elasticsearch.protocol=${ELASTICSEARCH_PROTOCOL} -E output.elasticsearch.username=${ELASTICSEARCH_USERNAME} -E output.elasticsearch.password=${ELASTICSEARCH_PASSWORD}
|
||||
labels:
|
||||
- SERVICE_8200_CHECK_HTTP=/
|
||||
- SERVICE_8200_NAME=${COMPOSE_SERVICE_NAME}-apm-server-8200
|
||||
- SERVICE_8200_TAGS=${APM_SERVER_SERVICE_8200_TAGS}
|
||||
networks:
|
||||
private:
|
||||
aliases:
|
||||
- apm.${DOCKER_NETWORK_PRIVATE}
|
||||
- apm.elastic.${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
ports:
|
||||
- 8200
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,6 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
curator:
|
||||
depends_on:
|
||||
- elasticsearch
|
||||
@@ -0,0 +1,27 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
curator:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/elastic/curator
|
||||
context: ../..
|
||||
dockerfile: docker/elastic/curator/Dockerfile
|
||||
target: ${DOCKER_BUILD_TARGET}
|
||||
environment:
|
||||
- DEPLOY=${DEPLOY}
|
||||
- HOSTS=${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_HOST}
|
||||
- LOGFORMAT=${CURATOR_LOGFORMAT}
|
||||
- LOGLEVEL=${CURATOR_LOGLEVEL}
|
||||
- MASTER_ONLY=${CURATOR_MASTER_ONLY}
|
||||
- PORT=${ELASTICSEARCH_PORT}
|
||||
- TIMEOUT=${CURATOR_TIMEOUT}
|
||||
- USE_SSL=${CURATOR_USE_SSL}
|
||||
networks:
|
||||
- private
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1,7 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
elasticsearch:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:5.3.3
|
||||
environment:
|
||||
- discovery.zen.minimum_master_nodes=1
|
||||
@@ -0,0 +1,7 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
elasticsearch:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2
|
||||
environment:
|
||||
- node.data=true
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
elasticsearch:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
|
||||
@@ -0,0 +1,7 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
elasticsearch:
|
||||
environment:
|
||||
- discovery.type=single-node
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
elasticsearch:
|
||||
depends_on:
|
||||
- sysctl
|
||||
environment:
|
||||
- ES_JAVA_OPTS=-Xmx1024m -Xms1024m
|
||||
- xpack.security.enabled=false
|
||||
- xpack.monitoring.enabled=false
|
||||
- xpack.graph.enabled=false
|
||||
- xpack.watcher.enabled=false
|
||||
- cluster.name=elasticsearch-${ENV}
|
||||
- network.host=0.0.0.0
|
||||
- http.cors.enabled=true
|
||||
- http.cors.allow-credentials=true
|
||||
- http.cors.allow-methods=OPTIONS,HEAD,GET,POST,PUT,DELETE
|
||||
- http.cors.max-age=0
|
||||
- http.cors.allow-origin=*
|
||||
- http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length
|
||||
labels:
|
||||
- SERVICE_9200_CHECK_HTTP=/
|
||||
- SERVICE_9200_NAME=${COMPOSE_SERVICE_NAME}-elasticsearch-9200
|
||||
- SERVICE_9200_TAGS=${ELASTICSEARCH_SERVICE_9200_TAGS}
|
||||
- SERVICE_9300_CHECK_TCP=true
|
||||
- SERVICE_9300_NAME=${COMPOSE_SERVICE_NAME}-elasticsearch-9300
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 9200
|
||||
- 9300
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 65536
|
||||
hard: 65536
|
||||
volumes:
|
||||
- elasticsearch:/usr/share/elasticsearch/data
|
||||
restart: always
|
||||
volumes:
|
||||
elasticsearch:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,9 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana-oss:
|
||||
image: docker.elastic.co/kibana/kibana-oss:7.4.2
|
||||
environment:
|
||||
- ELASTICSEARCH_HOSTS="${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"
|
||||
- KIBANA_INDEX=.kibana-oss.${ENV}
|
||||
- SERVER_NAME=kibana.${APP_DOMAIN}
|
||||
@@ -0,0 +1,9 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana-oss:
|
||||
image: docker.elastic.co/kibana/kibana-oss:7.7.1
|
||||
environment:
|
||||
- ELASTICSEARCH_HOSTS="${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"
|
||||
- KIBANA_INDEX=.kibana-oss.${ENV}
|
||||
- SERVER_NAME=kibana.${APP_DOMAIN}
|
||||
@@ -0,0 +1,6 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana-oss:
|
||||
depends_on:
|
||||
- elasticsearch
|
||||
@@ -0,0 +1,22 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana-oss:
|
||||
labels:
|
||||
- SERVICE_5601_CHECK_HTTP=/app/kibana
|
||||
- SERVICE_5601_NAME=${COMPOSE_SERVICE_NAME}-kibana-oss-5601
|
||||
- SERVICE_5601_TAGS=${KIBANA_SERVICE_5601_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 5601
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,7 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana:
|
||||
image: docker.elastic.co/kibana/kibana:5.3.3
|
||||
environment:
|
||||
- ELASTICSEARCH_URL="${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"
|
||||
@@ -0,0 +1,9 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana:
|
||||
image: docker.elastic.co/kibana/kibana:7.4.2
|
||||
environment:
|
||||
- ELASTICSEARCH_HOSTS="${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"
|
||||
- KIBANA_INDEX=.kibana.${ENV}
|
||||
- SERVER_NAME=kibana.${APP_DOMAIN}
|
||||
@@ -0,0 +1,9 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana:
|
||||
image: docker.elastic.co/kibana/kibana:7.7.1
|
||||
environment:
|
||||
- ELASTICSEARCH_HOSTS="${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"
|
||||
- KIBANA_INDEX=.kibana.${ENV}
|
||||
- SERVER_NAME=kibana.${APP_DOMAIN}
|
||||
@@ -0,0 +1,6 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana:
|
||||
depends_on:
|
||||
- elasticsearch
|
||||
@@ -0,0 +1,22 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
kibana:
|
||||
labels:
|
||||
- SERVICE_5601_CHECK_HTTP=/app/kibana
|
||||
- SERVICE_5601_NAME=${COMPOSE_SERVICE_NAME}-kibana-5601
|
||||
- SERVICE_5601_TAGS=${KIBANA_SERVICE_5601_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 5601
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,6 @@
|
||||
GRAFANA_AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID}
|
||||
GRAFANA_AWS_SECRET_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||
GRAFANA_MYSQL_DB=grafana
|
||||
GRAFANA_MYSQL_PASSWORD=grafana
|
||||
GRAFANA_MYSQL_USER=grafana
|
||||
GRAFANA_SERVICE_3000_TAGS=urlprefix-grafana.${APP_DOMAIN}/
|
||||
@@ -0,0 +1,41 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
grafana:
|
||||
build:
|
||||
args:
|
||||
- AWS_ACCESS_KEY=${GRAFANA_AWS_ACCESS_KEY}
|
||||
- AWS_SECRET_KEY=${GRAFANA_AWS_SECRET_KEY}
|
||||
- DOCKER_BUILD_DIR=docker/grafana
|
||||
- MYSQL_GRAFANA_DB=${GRAFANA_MYSQL_DB}
|
||||
- MYSQL_GRAFANA_PASSWORD=${GRAFANA_MYSQL_PASSWORD}
|
||||
- MYSQL_GRAFANA_USER=${GRAFANA_MYSQL_USER}
|
||||
context: ../..
|
||||
dockerfile: docker/grafana/Dockerfile
|
||||
environment:
|
||||
- GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
|
||||
image: ${DOCKER_REPOSITORY}/grafana:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_3000_NAME=${COMPOSE_SERVICE_NAME}-grafana-3000
|
||||
- SERVICE_3000_CHECK_TCP=true
|
||||
- SERVICE_3000_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_3000_TAGS=${GRAFANA_SERVICE_3000_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 3000
|
||||
restart: always
|
||||
volumes:
|
||||
- grafana:/var/lib/grafana
|
||||
|
||||
volumes:
|
||||
grafana:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1 @@
|
||||
logs ?= sematext/logagent
|
||||
@@ -0,0 +1,18 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
memcached:
|
||||
image: memcached:alpine
|
||||
labels:
|
||||
- SERVICE_11211_CHECK_TCP=true
|
||||
- SERVICE_11211_NAME=${COMPOSE_SERVICE_NAME}-memcached-11211
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
- 11211
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1 @@
|
||||
monitoring ?= grafana prometheus/alertmanager prometheus/blackbox-exporter prometheus/es-exporter prometheus/prometheus
|
||||
@@ -0,0 +1 @@
|
||||
MYSQL_ROOT_PASSWORD=root
|
||||
@@ -0,0 +1,10 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
mysql:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/mysql/5.6
|
||||
context: ../..
|
||||
dockerfile: docker/mysql/5.6/Dockerfile
|
||||
image: ${DOCKER_REPOSITORY}/mysql:${DOCKER_IMAGE_TAG}
|
||||
@@ -0,0 +1,6 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
mysql:
|
||||
ports:
|
||||
- 3303:3306
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:latest
|
||||
@@ -0,0 +1,6 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
mysql:
|
||||
ports:
|
||||
- 3306:3306
|
||||
@@ -0,0 +1,24 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
mysql:
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
labels:
|
||||
- SERVICE_CHECK_SCRIPT=container-check-status $$SERVICE_IP
|
||||
- SERVICE_3306_NAME=${COMPOSE_SERVICE_NAME}-mysql-3306
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
- 3306
|
||||
volumes:
|
||||
- mysql:/var/lib/mysql
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
mysql:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1 @@
|
||||
newrelic ?= newrelic/php-daemon
|
||||
@@ -0,0 +1,20 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
php-daemon:
|
||||
image: newrelic/php-daemon:latest
|
||||
# command: "/usr/bin/newrelic-daemon --loglevel debug"
|
||||
labels:
|
||||
- SERVICE_31339_NAME=${COMPOSE_SERVICE_NAME}-php-daemon-31339
|
||||
- SERVICE_31339_CHECK_TCP=true
|
||||
- SERVICE_31339_CHECK_INITIAL_STATUS=passing
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
- 31339
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1 @@
|
||||
STATIC_SERVICE_80_TAGS=urlprefix-static.${APP_DOMAIN}/
|
||||
@@ -0,0 +1,30 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
static:
|
||||
image: nginx:alpine
|
||||
command: /bin/sh -c "grep autoindex /etc/nginx/conf.d/default.conf >/dev/null 2>&1 || sed -i 's|index index.html index.htm;|index index.html index.htm;\n autoindex on;|' /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
|
||||
labels:
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-nginx-80
|
||||
- SERVICE_80_CHECK_TCP=true
|
||||
- SERVICE_80_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_80_TAGS=${STATIC_SERVICE_80_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 80
|
||||
restart: always
|
||||
volumes:
|
||||
- static:/usr/share/nginx/html:ro
|
||||
|
||||
volumes:
|
||||
static:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,9 @@
|
||||
.PHONY: node
|
||||
node: docker-network-create-$(DOCKER_NETWORK_PUBLIC) node-openssl stack-node-up
|
||||
|
||||
.PHONY: node-openssl
|
||||
node-openssl:
|
||||
docker run --rm --mount source=$(COMPOSE_PROJECT_NAME_INFRA_NODE)_ssl-certs,target=/certs alpine:latest [ -f /certs/$(SSL_HOSTNAME).crt.pem -a -f /certs/$(SSL_HOSTNAME).key.pem ] \
|
||||
|| docker run --rm -e SSL_HOSTNAME=$(SSL_HOSTNAME) --mount source=$(COMPOSE_PROJECT_NAME_INFRA_NODE)_ssl-certs,target=/certs alpine:latest sh -c "apk --no-cache add openssl \
|
||||
&& { [ -f /certs/${SSL_HOSTNAME}.key.pem ] || openssl genrsa -out /certs/${SSL_HOSTNAME}.key.pem 2048; } \
|
||||
&& openssl req -key /certs/${SSL_HOSTNAME}.key.pem -out /certs/${SSL_HOSTNAME}.crt.pem -addext extendedKeyUsage=serverAuth -addext subjectAltName=DNS:${SSL_HOSTNAME} -subj \"/C=/ST=/L=/O=/CN=${SSL_HOSTNAME}\" -x509 -days 365"
|
||||
@@ -0,0 +1,8 @@
|
||||
CONSUL_ACL_TOKENS_MASTER=01234567-89AB-CDEF-0123-456789ABCDEF
|
||||
CONSUL_CONSUL_HTTP_TOKEN=01234567-89AB-CDEF-0123-456789ABCDEF
|
||||
CONSUL_SERVICE_8500_TAGS=urlprefix-consul.${APP_DOMAIN}/
|
||||
FABIO_CONSUL_HTTP_TOKEN=01234567-89AB-CDEF-0123-456789ABCDEF
|
||||
FABIO_SERVICE_9998_TAGS=urlprefix-fabio.${APP_DOMAIN}/
|
||||
PORTAINER_SERVICE_9000_TAGS=urlprefix-portainer.${APP_DOMAIN}/
|
||||
REGISTRATOR_CONSUL_HTTP_TOKEN=01234567-89AB-CDEF-0123-456789ABCDEF
|
||||
SSL_HOSTNAME=${APP_DOMAIN}
|
||||
@@ -0,0 +1,2 @@
|
||||
CADVISOR_EXPORTER_SERVICE_8080_TAGS=urlprefix-cadvisor-exporter.${APP_DOMAIN}/
|
||||
NODE_EXPORTER_SERVICE_9100_TAGS=urlprefix-node-exporter.${APP_DOMAIN}/
|
||||
@@ -0,0 +1,49 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
cadvisor-exporter:
|
||||
image: google/cadvisor:latest
|
||||
hostname: ${HOSTNAME}
|
||||
labels:
|
||||
- SERVICE_8080_NAME=${COMPOSE_SERVICE_NAME}-cadvisor-exporter-8080
|
||||
- SERVICE_8080_CHECK_TCP=true
|
||||
- SERVICE_8080_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_8080_TAGS=${CADVISOR_SERVICE_EXPORTER_8080_TAGS}
|
||||
- SERVICE_9200_IGNORE=true
|
||||
networks:
|
||||
- public
|
||||
ports:
|
||||
- 8080
|
||||
restart: always
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker/:/var/lib/docker:ro
|
||||
- /var/run:/var/run:rw
|
||||
node-exporter:
|
||||
command:
|
||||
- --collector.filesystem.ignored-mount-points
|
||||
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
|
||||
- '--path.procfs=/host/proc'
|
||||
- '--path.sysfs=/host/sys'
|
||||
image: prom/node-exporter:latest
|
||||
hostname: ${HOSTNAME}
|
||||
labels:
|
||||
- SERVICE_9100_NAME=${COMPOSE_SERVICE_NAME}-node-exporter-9100
|
||||
- SERVICE_9100_CHECK_TCP=true
|
||||
- SERVICE_9100_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_9100_TAGS=${SERVICE_NODE_EXPORTER_HTTP_TAGS}
|
||||
networks:
|
||||
- public
|
||||
ports:
|
||||
- 9100
|
||||
restart: always
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /proc:/host/proc:ro
|
||||
- /sys:/host/sys:ro
|
||||
|
||||
networks:
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,110 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
consul:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/consul
|
||||
context: ../..
|
||||
dockerfile: docker/consul/Dockerfile
|
||||
image: ${DOCKER_REPOSITORY_INFRA_NODE}/consul:${DOCKER_IMAGE_TAG}
|
||||
environment:
|
||||
CONSUL_BIND_INTERFACE: '${DOCKER_HOST_IFACE}'
|
||||
CONSUL_CLIENT_INTERFACE: '${DOCKER_HOST_IFACE}'
|
||||
CONSUL_HTTP_TOKEN: '${CONSUL_CONSUL_HTTP_TOKEN}'
|
||||
CONSUL_LOCAL_CONFIG: '{ "log_level": "warn"
|
||||
, "enable_script_checks": true
|
||||
, "acl": { "enabled": true
|
||||
, "default_policy": "deny"
|
||||
, "enable_token_persistence": true
|
||||
, "tokens": { "master": "$CONSUL_ACL_TOKENS_MASTER"
|
||||
, "agent": "$CONSUL_CONSUL_HTTP_TOKEN"
|
||||
}
|
||||
}
|
||||
}'
|
||||
hostname: ${HOSTNAME}
|
||||
labels:
|
||||
- SERVICE_8300_IGNORE=true
|
||||
- SERVICE_8301_IGNORE=true
|
||||
- SERVICE_8302_IGNORE=true
|
||||
- SERVICE_8500_CHECK_HTTP=/ui
|
||||
- SERVICE_8500_NAME=${COMPOSE_SERVICE_NAME}-consul-8500
|
||||
- SERVICE_8500_TAGS=${CONSUL_SERVICE_8500_TAGS}
|
||||
- SERVICE_8600_IGNORE=true
|
||||
- SERVICE_ADDRESS=${DOCKER_HOST_INET}
|
||||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- consul:/consul/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
fabio:
|
||||
command: -registry.backend "consul" -registry.consul.addr "consul:8500" -registry.consul.token "$FABIO_CONSUL_HTTP_TOKEN" -proxy.addr ":80,:443;cs=local" -proxy.cs "cs=local;type=file;cert=/certs/${SSL_HOSTNAME}.crt.pem;key=/certs/${SSL_HOSTNAME}.key.pem"
|
||||
depends_on:
|
||||
- consul
|
||||
extra_hosts:
|
||||
- consul:${DOCKER_HOST_INET}
|
||||
hostname: ${HOSTNAME}
|
||||
image: fabiolb/fabio:latest
|
||||
labels:
|
||||
- SERVICE_80_CHECK_TCP=true
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-fabio-80
|
||||
- SERVICE_443_CHECK_TCP=true
|
||||
- SERVICE_443_NAME=${COMPOSE_SERVICE_NAME}-fabio-443
|
||||
- SERVICE_9998_CHECK_TCP=true
|
||||
- SERVICE_9998_NAME=${COMPOSE_SERVICE_NAME}-fabio-9998
|
||||
- SERVICE_9998_TAGS=${FABIO_SERVICE_9998_TAGS}
|
||||
- SERVICE_9999_IGNORE=true
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
- 9998
|
||||
networks:
|
||||
- public
|
||||
restart: always
|
||||
volumes:
|
||||
- ssl-certs:/certs
|
||||
portainer:
|
||||
image: portainer/portainer:latest
|
||||
labels:
|
||||
- SERVICE_8000_IGNORE=true
|
||||
- SERVICE_9000_CHECK_HTTP=/
|
||||
- SERVICE_9000_NAME=${COMPOSE_SERVICE_NAME}-portainer-9000
|
||||
- SERVICE_9000_TAGS=${PORTAINER_SERVICE_9000_TAGS}
|
||||
networks:
|
||||
- public
|
||||
ports:
|
||||
- 8000
|
||||
- 9000
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- portainer:/data
|
||||
registrator:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/registrator
|
||||
context: ../..
|
||||
dockerfile: docker/registrator/Dockerfile
|
||||
command: -internal -cleanup -deregister always -resync=30 -useIpFromNetwork node -useIpFromLabel SERVICE_ADDRESS consul://consul:8500
|
||||
depends_on:
|
||||
- consul
|
||||
environment:
|
||||
- CONSUL_HTTP_TOKEN=${REGISTRATOR_CONSUL_HTTP_TOKEN}
|
||||
extra_hosts:
|
||||
- consul:${DOCKER_HOST_INET}
|
||||
hostname: ${HOSTNAME}
|
||||
image: ${DOCKER_REPOSITORY_INFRA_NODE}/registrator:${DOCKER_IMAGE_TAG}
|
||||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/tmp/docker.sock
|
||||
|
||||
volumes:
|
||||
consul:
|
||||
portainer:
|
||||
ssl-certs:
|
||||
|
||||
networks:
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,14 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
pdns-recursor:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/pdns-server
|
||||
context: ../../..
|
||||
dockerfile: docker/pdns-server/Dockerfile
|
||||
command: /usr/local/sbin/pdns_recursor --local-address='192.168.0.1:53' --allow-from='127.0.0.0/8, 192.168.1.0/24, 172.16.0.0/12'
|
||||
image: ${DOCKER_REPOSITORY}/pdns-recursor:${DOCKER_IMAGE_TAG}
|
||||
hostname: ${HOSTNAME}
|
||||
network_mode: host
|
||||
restart: always
|
||||
@@ -0,0 +1,3 @@
|
||||
VSFTPD_S3_AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||
VSFTPD_S3_AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||
VSFTPD_S3_FTPD_USERS=ftpuser::ftppass::ftpbucket
|
||||
@@ -0,0 +1,39 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
vsftpd-s3:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/vsftpd-s3
|
||||
context: ../../..
|
||||
dockerfile: docker/vsftpd-s3/Dockerfile
|
||||
cap_add:
|
||||
- sys_admin
|
||||
devices:
|
||||
- /dev/fuse
|
||||
environment:
|
||||
- AWS_ACCESS_KEY_ID=${VSFTPD_S3_AWS_ACCESS_KEY_ID}
|
||||
- AWS_SECRET_ACCESS_KEY=${VSFTPD_S3_AWS_SECRET_ACCESS_KEY}
|
||||
- DIR_REMOTE=${VSFTPD_S3_DIR_REMOTE}
|
||||
- FTP_HOST=${VSFTPD_S3_FTP_HOST}
|
||||
- FTP_PASS=${VSFTPD_S3_FTP_PASS}
|
||||
- FTP_SYNC=${VSFTPD_S3_FTP_SYNC}
|
||||
- FTP_USER=${VSFTPD_S3_FTP_USER}
|
||||
- FTPD_USER=${VSFTPD_S3_FTPD_USER}
|
||||
- FTPD_USERS=${VSFTPD_S3_FTPD_USERS}
|
||||
- PASV_MAX_PORT=${VSFTPD_S3_PASV_MAX_PORT}
|
||||
- PASV_MIN_PORT=${VSFTPD_S3_PASV_MIN_PORT}
|
||||
image: ${DOCKER_REPOSITORY}/vsftpd-s3:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_21_NAME=${COMPOSE_SERVICE_NAME}-vsftpd-s3-21
|
||||
- SERVICE_21_CHECK_TCP=true
|
||||
- SERVICE_21_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_22_NAME=${COMPOSE_SERVICE_NAME}-vsftpd-s3-22
|
||||
- SERVICE_22_CHECK_TCP=true
|
||||
- SERVICE_22_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_65000_IGNORE=true
|
||||
hostname: ${HOSTNAME}
|
||||
security_opt:
|
||||
- apparmor:unconfined
|
||||
network_mode: host
|
||||
restart: always
|
||||
@@ -0,0 +1,3 @@
|
||||
POSTGRES_DB=postgres
|
||||
POSTGRES_PASSWORD=postgres
|
||||
POSTGRES_USER=postgres
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:9.6-alpine
|
||||
@@ -0,0 +1,6 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
ports:
|
||||
- 5433:5432
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:latest
|
||||
@@ -0,0 +1,24 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
command: -c logging_collector=on -c log_destination='stderr' -c log_directory='/shared/logs/postgres' -c log_filename='postgresql.log' -c log_file_mode='0644' -c log_rotation_age=0 -c log_checkpoints=on -c log_hostname=on -c log_line_prefix='%t [%p] [%l-1] db=%d,user=%u '
|
||||
depends_on:
|
||||
- shared-logs
|
||||
ports:
|
||||
- 5432:5432
|
||||
volumes:
|
||||
- shared:/shared
|
||||
shared-logs:
|
||||
command: sh -c 'mkdir -p /shared/logs/postgres && chown 70:70 /shared/logs/postgres'
|
||||
image: alpine:latest
|
||||
volumes:
|
||||
- shared:/shared
|
||||
|
||||
volumes:
|
||||
shared:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
device: ${MONOREPO_DIR}/shared
|
||||
o: bind
|
||||
@@ -0,0 +1,25 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_USER=${POSTGRES_USER}
|
||||
labels:
|
||||
- SERVICE_5432_NAME=${COMPOSE_SERVICE_NAME}-postgres-5432
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
- 5432
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
postgres:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1,8 @@
|
||||
ALERTMANAGER_SERVICE_9093_TAGS=urlprefix-alertmanager.${APP_DOMAIN}/
|
||||
ALERTMANAGER_SLACK_WEBHOOK_ID=https://hooks.slack.com/services/123456789/123456789/ABCDEFGHIJKLMNOPQRSTUVWX
|
||||
BLACKBOX_SERVICE_9115_TAGS=urlprefix-blackbox.${APP_DOMAIN}/
|
||||
ES_EXPORTER_ELASTICSEARCH_URL=elasticsearch:9200
|
||||
ES_EXPORTER_SERVICE_9206_TAGS=urlprefix-es-exporter.${APP_DOMAIN}/
|
||||
PROMETHEUS_MONITORING_PRIMARY_TARGETS_BLACKBOX=https://www.google.com
|
||||
PROMETHEUS_MONITORING_SECONDARY_TARGETS_BLACKBOX=
|
||||
PROMETHEUS_SERVICE_9090_TAGS=urlprefix-prometheus.${APP_DOMAIN}/
|
||||
@@ -0,0 +1,30 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
alertmanager:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/alertmanager
|
||||
- SLACK_WEBHOOK_ID=${ALERTMANAGER_SLACK_WEBHOOK_ID}
|
||||
context: ../..
|
||||
dockerfile: docker/alertmanager/Dockerfile
|
||||
image: ${DOCKER_REPOSITORY}/alertmanager:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_9093_NAME=${COMPOSE_SERVICE_NAME}-alertmanager-9093
|
||||
- SERVICE_9093_CHECK_TCP=true
|
||||
- SERVICE_9093_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_9093_TAGS=${ALERTMANAGER_SERVICE_9093_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 9093
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,29 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
blackbox:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/blackbox
|
||||
context: ../..
|
||||
dockerfile: docker/blackbox/Dockerfile
|
||||
image: ${DOCKER_REPOSITORY}/blackbox:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_9115_NAME=${COMPOSE_SERVICE_NAME}-blackbox-9115
|
||||
- SERVICE_9115_CHECK_TCP=true
|
||||
- SERVICE_9115_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_9115_TAGS=${BLACKBOX_SERVICE_9115_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 9115
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,30 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
es-exporter:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/es-exporter
|
||||
context: ../..
|
||||
dockerfile: docker/es-exporter/Dockerfile
|
||||
command: -e ${ES_EXPORTER_ELASTICSEARCH_URL}
|
||||
image: ${DOCKER_REPOSITORY}/es-exporter:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_9206_NAME=${COMPOSE_SERVICE_NAME}-es-exporter-9206
|
||||
- SERVICE_9206_CHECK_TCP=true
|
||||
- SERVICE_9206_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_9206_TAGS=${ES_EXPORTER_SERVICE_9206_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 9206
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,36 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
prometheus:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/prometheus
|
||||
- MONITORING_PRIMARY_TARGETS_BLACKBOX=${PROMETHEUS_MONITORING_PRIMARY_TARGETS_BLACKBOX}
|
||||
- MONITORING_SECONDARY_TARGETS_BLACKBOX=${PROMETHEUS_MONITORING_SECONDARY_TARGETS_BLACKBOX}
|
||||
context: ../..
|
||||
dockerfile: docker/prometheus/Dockerfile
|
||||
image: ${DOCKER_REPOSITORY}/prometheus:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_9090_NAME=${COMPOSE_SERVICE_NAME}-prometheus-9090
|
||||
- SERVICE_9090_CHECK_TCP=true
|
||||
- SERVICE_9090_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_9090_TAGS=${PROMETHEUS_SERVICE_9090_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 9090
|
||||
restart: always
|
||||
volumes:
|
||||
- prometheus:/prometheus
|
||||
|
||||
volumes:
|
||||
prometheus:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1 @@
|
||||
RABBITMQ_SERVICE_15672_TAGS=urlprefix-rabbitmq.${APP_DOMAIN}/
|
||||
@@ -0,0 +1,35 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
rabbitmq:
|
||||
image: rabbitmq:management-alpine
|
||||
labels:
|
||||
- SERVICE_4369_IGNORE=true
|
||||
- SERVICE_5671_IGNORE=true
|
||||
- SERVICE_5672_CHECK_TCP=true
|
||||
- SERVICE_5672_NAME=${COMPOSE_SERVICE_NAME}-rabbitmq-5672
|
||||
- SERVICE_15671_IGNORE=true
|
||||
- SERVICE_15672_CHECK_HTTP=/
|
||||
- SERVICE_15672_NAME=${COMPOSE_SERVICE_NAME}-rabbitmq-15672
|
||||
- SERVICE_15672_TAGS=${RABBITMQ_SERVICE_15672_TAGS}
|
||||
- SERVICE_25672_IGNORE=true
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 5672
|
||||
- 15672
|
||||
volumes:
|
||||
- rabbitmq:/var/lib/rabbitmq
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
rabbitmq:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,29 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
redis:
|
||||
depends_on:
|
||||
- sysctl
|
||||
image: redis:alpine
|
||||
command: redis-server --appendonly yes
|
||||
labels:
|
||||
- SERVICE_6379_CHECK_TCP=true
|
||||
- SERVICE_6379_NAME=${COMPOSE_SERVICE_NAME}-redis-6379
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
- 6379
|
||||
volumes:
|
||||
- redis:/data
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
redis:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,33 @@
|
||||
REDMINE_DB_HOST=mysql
|
||||
REDMINE_DB_NAME=redmine
|
||||
REDMINE_DB_PASS=redmine
|
||||
REDMINE_DB_USER=redmine
|
||||
REDMINE_IMAP_ENABLED=false
|
||||
REDMINE_IMAP_HOST=imap.gmail.com
|
||||
REDMINE_IMAP_INTERVAL=30
|
||||
REDMINE_IMAP_USER=imap_user
|
||||
REDMINE_IMAP_PASS=imap_pass
|
||||
REDMINE_INCOMING_EMAIL_ALLOW_OVERRIDE=project,tracker,category,priority,status
|
||||
REDMINE_INCOMING_EMAIL_PROJECT=incoming_email_project
|
||||
REDMINE_FETCH_COMMITS=hourly
|
||||
REDMINE_SECRET_TOKEN=redmine_secret_token
|
||||
REDMINE_SERVICE_80_TAGS=urlprefix-redmine.${APP_DOMAIN}/
|
||||
REDMINE_SMTP_DOMAIN=redmine_smtp_domain
|
||||
REDMINE_SMTP_USER=redmine_smtp_user
|
||||
REDMINE_SMTP_PASS=redmine_smtp_pass
|
||||
REDMINE3_DB_HOST=mysql
|
||||
REDMINE3_DB_NAME=redmine3
|
||||
REDMINE3_DB_PASS=redmine
|
||||
REDMINE3_DB_USER=redmine
|
||||
REDMINE3_IMAP_ENABLED=false
|
||||
REDMINE3_IMAP_HOST=imap.gmail.com
|
||||
REDMINE3_IMAP_INTERVAL=30
|
||||
REDMINE3_IMAP_USER=imap_user
|
||||
REDMINE3_IMAP_PASS=imap_pass
|
||||
REDMINE3_INCOMING_EMAIL_ALLOW_OVERRIDE=project,tracker,category,priority,status
|
||||
REDMINE3_INCOMING_EMAIL_PROJECT=incoming_email_project
|
||||
REDMINE3_REDMINE_SECRET_TOKEN=redmine_secret_token
|
||||
REDMINE3_SERVICE_80_TAGS=urlprefix-redmine3.${APP_DOMAIN}/
|
||||
REDMINE3_SMTP_DOMAIN=redmine_smtp_domain
|
||||
REDMINE3_SMTP_USER=redmine_smtp_user
|
||||
REDMINE3_SMTP_PASS=redmine_smtp_pass
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
redmine3:
|
||||
image: sameersbn/redmine:3.4.12
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
redmine:
|
||||
image: sameersbn/redmine:4.0.5
|
||||
@@ -0,0 +1,5 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
redmine:
|
||||
image: sameersbn/redmine:latest
|
||||
@@ -0,0 +1,48 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
redmine:
|
||||
environment:
|
||||
- DB_ADAPTER=mysql2
|
||||
- DB_HOST=${REDMINE_DB_HOST}
|
||||
- DB_NAME=${REDMINE_DB_NAME}
|
||||
- DB_USER=${REDMINE_DB_USER}
|
||||
- DB_PASS=${REDMINE_DB_PASS}
|
||||
- IMAP_ENABLED=${REDMINE_IMAP_ENABLED}
|
||||
- IMAP_HOST=${REDMINE_IMAP_HOST}
|
||||
- IMAP_INTERVAL=${REDMINE_IMAP_INTERVAL}
|
||||
- IMAP_USER=${REDMINE_IMAP_USER}
|
||||
- IMAP_PASS=${REDMINE_IMAP_PASS}
|
||||
- INCOMING_EMAIL_PROJECT=${REDMINE_INCOMING_EMAIL_PROJECT}
|
||||
- INCOMING_EMAIL_ALLOW_OVERRIDE=${REDMINE_INCOMING_EMAIL_ALLOW_OVERRIDE}
|
||||
- REDMINE_FETCH_COMMITS=${REDMINE_FETCH_COMMITS}
|
||||
- REDMINE_SECRET_TOKEN=${REDMINE_SECRET_TOKEN}
|
||||
- SMTP_DOMAIN=${REDMINE_SMTP_DOMAIN}
|
||||
- SMTP_USER=${REDMINE_SMTP_USER}
|
||||
- SMTP_PASS=${REDMINE_SMTP_PASS}
|
||||
- TZ=Europe/Paris
|
||||
labels:
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-redmine-80
|
||||
- SERVICE_80_CHECK_TCP=true
|
||||
- SERVICE_80_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_80_TAGS=${REDMINE_SERVICE_80_TAGS}
|
||||
- SERVICE_443_IGNORE=true
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 80
|
||||
restart: always
|
||||
volumes:
|
||||
- redmine:/home/redmine/data
|
||||
|
||||
volumes:
|
||||
redmine:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,41 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
redmine3:
|
||||
image: sameersbn/redmine:3.4.12
|
||||
environment:
|
||||
- DB_ADAPTER=mysql2
|
||||
- DB_HOST=${REDMINE3_DB_HOST}
|
||||
- DB_NAME=${REDMINE3_DB_NAME}
|
||||
- DB_USER=${REDMINE3_DB_USER}
|
||||
- DB_PASS=${REDMINE3_DB_PASS}
|
||||
- REDMINE_SECRET_TOKEN=${REDMINE3_REDMINE_SECRET_TOKEN}
|
||||
- SMTP_DOMAIN=${REDMINE3_SMTP_DOMAIN}
|
||||
- SMTP_USER=${REDMINE3_SMTP_USER}
|
||||
- SMTP_PASS=${REDMINE3_SMTP_PASS}
|
||||
- TZ=Europe/Paris
|
||||
labels:
|
||||
- SERVICE_80_NAME=${COMPOSE_SERVICE_NAME}-redmine3-80
|
||||
- SERVICE_80_CHECK_TCP=true
|
||||
- SERVICE_80_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_80_TAGS=${REDMINE3_SERVICE_80_TAGS}
|
||||
- SERVICE_443_IGNORE=true
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
ports:
|
||||
- 80
|
||||
restart: always
|
||||
volumes:
|
||||
- redmine3:/home/redmine/data
|
||||
|
||||
volumes:
|
||||
redmine3:
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
@@ -0,0 +1,31 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
logagent:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/sematext/logagent
|
||||
- GIT_AUTHOR_NAME=${GIT_AUTHOR_NAME}
|
||||
- GIT_AUTHOR_EMAIL=${GIT_AUTHOR_EMAIL}
|
||||
- UID=${UID}
|
||||
- USER=${USER}
|
||||
context: ../..
|
||||
dockerfile: docker/sematext/logagent/Dockerfile
|
||||
target: ${DOCKER_BUILD_TARGET}
|
||||
image: ${DOCKER_REPOSITORY}/logagent:${DOCKER_IMAGE_TAG}
|
||||
environment:
|
||||
- LOGAGENT_ARGS=-u 514 --docker /tmp/docker.sock --dockerEvents
|
||||
- LOGS_RECEIVER_URL=${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}
|
||||
- LOGS_TOKEN=logs-YYYY.MM.DD
|
||||
networks:
|
||||
- private
|
||||
ports:
|
||||
- 514
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/tmp/docker.sock
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
@@ -0,0 +1,2 @@
|
||||
services ?= elastic memcached mysql rabbitmq redis
|
||||
services: stack-services-up;
|
||||
@@ -0,0 +1 @@
|
||||
testing ?= drone/drone drone/drone-runner-docker drone/gc
|
||||
@@ -0,0 +1,6 @@
|
||||
RC_ATTACH_SCREEN=false
|
||||
RC_ATTACH_TMUX=false
|
||||
RC_CUSTOM_PROMPT=false
|
||||
RC_CUSTOM_PS1=true
|
||||
RC_SSH_AGENT=false
|
||||
THEIA_SERVICE_3000_TAGS=urlprefix-theia.${USER}.${APP_DOMAIN}/
|
||||
@@ -0,0 +1,63 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
theia:
|
||||
build:
|
||||
args:
|
||||
- DOCKER_BUILD_DIR=docker/theia
|
||||
- DOCKER_GID=${DOCKER_GID}
|
||||
- GIT_AUTHOR_NAME=${GIT_AUTHOR_NAME}
|
||||
- GIT_AUTHOR_EMAIL=${GIT_AUTHOR_EMAIL}
|
||||
- SSH_BASTION_USERNAME=${SSH_BASTION_USERNAME}
|
||||
- SSH_BASTION_HOSTNAME=${SSH_BASTION_HOSTNAME}
|
||||
- SSH_PUBLIC_HOST_KEYS=${SSH_PUBLIC_HOST_KEYS}
|
||||
- SSH_PRIVATE_IP_RANGE=${SSH_PRIVATE_IP_RANGE}
|
||||
- UID=${UID}
|
||||
- USER=${USER}
|
||||
context: ../..
|
||||
dockerfile: docker/theia/Dockerfile
|
||||
target: ${DOCKER_BUILD_TARGET}
|
||||
environment:
|
||||
- ENV=${ENV}
|
||||
- MONOREPO_DIR=${MONOREPO_DIR}
|
||||
- RC_01_CUSTOM_PS1=${RC_CUSTOM_PS1}
|
||||
- RC_02_CUSTOM_PROMPT=${RC_CUSTOM_PROMPT}
|
||||
- RC_03_SSH_AGENT=${RC_SSH_AGENT}
|
||||
- RC_04_ATTACH_TMUX=${RC_ATTACH_TMUX}
|
||||
- RC_05_ATTACH_SCREEN=${RC_ATTACH_SCREEN}
|
||||
- SHELL=${DOCKER_SHELL}
|
||||
- SSH_AUTH_SOCK=/tmp/ssh-agent/socket
|
||||
- WORKSPACE_DIR=/Sources/${MONOREPO}
|
||||
image: ${DOCKER_REPOSITORY}/theia:${DOCKER_IMAGE_TAG}
|
||||
labels:
|
||||
- SERVICE_3000_NAME=${COMPOSE_SERVICE_NAME}-theia-3000
|
||||
- SERVICE_3000_CHECK_TCP=true
|
||||
- SERVICE_3000_CHECK_INITIAL_STATUS=passing
|
||||
- SERVICE_3000_TAGS=${THEIA_SERVICE_3000_TAGS}
|
||||
networks:
|
||||
- private
|
||||
- public
|
||||
restart: always
|
||||
volumes:
|
||||
- monorepo:/Sources/${MONOREPO}:cached
|
||||
- ssh-agent:/tmp/ssh-agent:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
volumes:
|
||||
monorepo:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
device: ${MONOREPO_DIR}
|
||||
o: bind
|
||||
ssh-agent:
|
||||
external:
|
||||
name: ${DOCKER_VOLUME_SSH}
|
||||
|
||||
networks:
|
||||
private:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PRIVATE}
|
||||
public:
|
||||
external: true
|
||||
name: ${DOCKER_NETWORK_PUBLIC}
|
||||
Reference in New Issue
Block a user