blob: 40fd2c7a6c829f2aec74c4225f0a950072138e24 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
services:
iggy-server:
platform: linux/amd64
build:
context: ..
dockerfile: core/server/Dockerfile
target: runtime-prebuilt
args:
PREBUILT_IGGY_SERVER: ${IGGY_SERVER_PATH:-target/debug/iggy-server}
PREBUILT_IGGY_CLI: ${IGGY_CLI_PATH:-target/debug/iggy}
LIBC: glibc
PROFILE: debug
command: ["--fresh", "--with-default-root-credentials"]
cap_add:
- SYS_NICE
security_opt:
- seccomp:unconfined
ulimits:
memlock:
soft: -1
hard: -1
healthcheck:
test: ["CMD", "/usr/local/bin/iggy", "ping"]
interval: 1s
timeout: 3s
retries: 30
start_period: 2s
environment:
- RUST_LOG=info
- IGGY_SYSTEM_PATH=local_data
- IGGY_TCP_ADDRESS=0.0.0.0:8090
- IGGY_HTTP_ADDRESS=0.0.0.0:3000
- IGGY_QUIC_ADDRESS=0.0.0.0:8080
volumes:
- iggy_data:/app/local_data
networks:
- iggy-bdd-network
rust-bdd:
build:
context: ..
dockerfile: bdd/rust/Dockerfile
depends_on:
- iggy-server
environment:
- IGGY_ROOT_USERNAME=iggy
- IGGY_ROOT_PASSWORD=iggy
- IGGY_TCP_ADDRESS=iggy-server:8090
volumes:
- ./scenarios/basic_messaging.feature:/app/features/basic_messaging.feature
command:
[
"cargo",
"test",
"-p",
"bdd",
"--features",
"iggy-server-in-docker",
"--features",
"bdd",
]
networks:
- iggy-bdd-network
python-bdd:
build:
context: ..
dockerfile: bdd/python/Dockerfile
depends_on:
- iggy-server
environment:
- IGGY_ROOT_USERNAME=iggy
- IGGY_ROOT_PASSWORD=iggy
- IGGY_TCP_ADDRESS=iggy-server:8090
volumes:
- ./scenarios/basic_messaging.feature:/app/features/basic_messaging.feature
working_dir: /app
command: ["pytest", "tests/", "-v"]
networks:
- iggy-bdd-network
go-bdd:
build:
context: ..
dockerfile: bdd/go/Dockerfile
depends_on:
- iggy-server
environment:
- IGGY_ROOT_USERNAME=iggy
- IGGY_ROOT_PASSWORD=iggy
- IGGY_TCP_ADDRESS=iggy-server:8090
volumes:
- ./scenarios/basic_messaging.feature:/app/features/basic_messaging.feature
command: ["go", "test", "-v", "./..."]
networks:
- iggy-bdd-network
node-bdd:
build:
context: ..
dockerfile: bdd/node/Dockerfile
depends_on:
iggy-server:
condition: service_healthy
environment:
- IGGY_ROOT_USERNAME=iggy
- IGGY_ROOT_PASSWORD=iggy
- IGGY_TCP_ADDRESS=iggy-server:8090
command: ["npm", "run", "test:bdd"]
networks:
- iggy-bdd-network
csharp-bdd:
build:
context: ..
dockerfile: bdd/csharp/Dockerfile
depends_on:
- iggy-server
environment:
- IGGY_ROOT_USERNAME=iggy
- IGGY_ROOT_PASSWORD=iggy
- IGGY_TCP_ADDRESS=iggy-server:8090
command: ["dotnet", "test"]
networks:
- iggy-bdd-network
networks:
iggy-bdd-network:
driver: bridge
volumes:
iggy_data: