version: '3'
networks:
test_network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24
services:
redis:
container_name: redis
hostname: redis
image: redis:alpine
ports:
- 6379:6379
restart: always
depends_on:
- fluentd
fluentd:
container_name: fluentd
image: fluent/fluent-bit
user: root
volumes:
- /var/lib/docker/containers:/fluentd/log/containers
- ./test_server/fluent-bit:/fluent-bit/etc
- ./Logs/ContainersLogs:/output
logging:
driver: local
restart: on-failure
re_front:
container_name: re_front
build:
dockerfile: ./test_server/front.Dockerfile
ports:
- 80:80
logging:
driver: none
depends_on:
- redis
re:
container_name: re
build:
dockerfile: ./test_server/re.Dockerfile
hostname: re
volumes:
- /home/user/chain_docker_dir:/app/configs
- ./Logs/RedisLogs:/var/log/RedisLogs
- ./Logs/ContainersLogs:/app/general_log
- /etc/localtime:/etc/localtime:ro
ports:
- 5555:5555
- 5554:5554
- 7777:7777
environment:
- REDIS_HOST=redis
restart: on-failure
depends_on:
- re_transport
logging:
driver: "json-file"
options:
tag: "rulecontainer"
max-size: 10000
max-file: 1
extra_hosts:
- " fw.test.promuc.local:10.186.1.100"
networks:
- default
- test_network
re_transport:
container_name: re_transport
restart: on-failure
build:
dockerfile: ./test_server/tcp.Dockerfile
hostname: re_transport
volumes:
- /home/user/chain_docker_dir:/app/configs
- /etc/localtime:/etc/localtime:ro
environment:
- REDIS_HOST=redis
depends_on:
- redis
logging:
driver: "json-file"
options:
tag: "transcontainer"
max-size: 10000
max-file: 1
extra_hosts:
- " ubuntu203:10.186.0.203"
- "host.docker.internal:127.0.0.1"
networks:
- default
- test_network
re_usart_transport:
container_name: re_usart_transport
restart: on-failure
build:
dockerfile: ./test_server/usart.Dockerfile
hostname: re_usart_transport
volumes:
- /dev:/dev
environment:
- REDIS_HOST=redis
depends_on:
- redis
privileged: true
gitea:
image: gitea/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
#networks:
# - gitea
volumes:
- gitea_data:/data
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: mariadb:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=rootpass
- MYSQL_DATABASE=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=mysqlpass
#networks:
# - gitea
volumes:
- db_data:/var/lib/mysql
zookeeper:
image: confluentinc/cp-zookeeper:7.2.1
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-server:7.2.1
hostname: kafka
restart: on-failure
container_name: kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
- "9997:9997"
environment:
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_JMX_PORT: 9997
KAFKA_JMX_HOSTNAME: kafka
kafka-ui:
container_name: kafka-ui
image: provectuslabs/kafka-ui:latest
ports:
- 8082:8080
environment:
DYNAMIC_CONFIG_ENABLED: true
KAFKA_CLUSTERS_0_NAME: local
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092
depends_on:
- kafka
kibana:
image: kibana:7.16.1
container_name: kib
ports:
- "5601:5601"
depends_on:
- elasticsearch
logging:
driver: none
schema-registry:
image: confluentinc/cp-schema-registry:7.2.1
hostname: schema-registry
container_name: schema-registry
depends_on:
- zookeeper
- kafka
ports:
- "8081:8081"
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'PLAINTEXT://kafka:29092'
SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081
SCHEMA_REGISTRY_ADVERTISED_LISTENERS: 'PLAINTEXT://schema-registry:8081'
elasticsearch:
image: elasticsearch:7.16.1
container_name: elasticsearch
environment:
discovery.type: single-node
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
ports:
- "9200:9200"
- "9300:9300"
healthcheck:
test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
interval: 10s
timeout: 10s
retries: 3
logging:
driver: none
mqtt5:
image: eclipse-mosquitto
container_name: mqtt5
restart: always
ports:
- "1883:1883"
- "9001:9001"
volumes:
- ./mqtt_server_docker/config:/mosquitto/config
- ./mqtt_server_docker/data:/mosquitto/data
- ./mqtt_server_docker/log:/mosquitto/log
networks:
test_network:
ipv4_address: 172.20.0.5
snmp:
container_name: snmp_emul
image: really/snmpd
ports:
- 161:161
read_only: true
privileged: true
networks:
test_network:
ipv4_address: 172.20.0.12
bacnet:
container_name: bacnet_emul
restart: on-failure
build:
dockerfile: ./test_server/bac_eml.Dockerfile
ports:
- 47808:47808
networks:
test_network:
ipv4_address: 172.20.0.10
default:
aliases:
- bacnet_emul
modbus_tcp:
container_name: modbusTCP_emul
restart: on-failure
build:
dockerfile: ./test_server/mbs_eml_tcp.Dockerfile
ports:
- 1502:1502
re_cov:
container_name: re_cov
restart: on-failure
build:
dockerfile: ./test_server/cov.Dockerfile
hostname: re_cov
environment:
- REDIS_HOST=redis
depends_on:
- re_transport
ports:
- 47809:47809
networks:
test_network:
ipv4_address: 172.20.0.8
default:
aliases:
- re_cov
memcached:
container_name: memcached
image: memcached:latest
ports:
- 11211:11211
networks:
test_network:
ipv4_address: 172.20.0.13
volumes:
gitea_data:
driver: local
db_data:
driver: local