diff --git a/dev/docker/ballista-executor.Dockerfile b/dev/docker/ballista-executor.Dockerfile index 156fbae42..33931df65 100644 --- a/dev/docker/ballista-executor.Dockerfile +++ b/dev/docker/ballista-executor.Dockerfile @@ -23,6 +23,8 @@ ENV RELEASE_FLAG=${RELEASE_FLAG} ENV RUST_LOG=info ENV RUST_BACKTRACE=full +RUN apt-get update && apt-get install -y netcat + COPY target/$RELEASE_FLAG/ballista-executor /root/ballista-executor # Expose Ballista Executor gRPC port diff --git a/dev/docker/ballista-scheduler.Dockerfile b/dev/docker/ballista-scheduler.Dockerfile index 15b07360b..998e9dffb 100644 --- a/dev/docker/ballista-scheduler.Dockerfile +++ b/dev/docker/ballista-scheduler.Dockerfile @@ -22,6 +22,9 @@ ARG RELEASE_FLAG=release ENV RELEASE_FLAG=${RELEASE_FLAG} ENV RUST_LOG=info ENV RUST_BACKTRACE=full +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y nginx netcat COPY target/$RELEASE_FLAG/ballista-scheduler /root/ballista-scheduler diff --git a/docker-compose.yml b/docker-compose.yml index 826899dd1..5e71f2e5e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,25 +14,33 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -version: '3.3' +version: '3.8' services: etcd: image: quay.io/coreos/etcd:v3.4.9 command: "etcd -advertise-client-urls http://etcd:2379 -listen-client-urls http://0.0.0.0:2379" ports: - - 2379:2379 + - "2379:2379" ballista-scheduler: image: ballista-scheduler build: dockerfile: dev/docker/ballista-scheduler.Dockerfile context: . command: "--config-backend etcd --etcd-urls etcd:2379 --bind-host 0.0.0.0" + ports: + - "80:80" + - "50050:50050" environment: - RUST_LOG=info volumes: - ./benchmarks/data:/data depends_on: - etcd + healthcheck: + test: ["CMD", "nc", "-z", "ballista-scheduler", "50050"] + interval: 5s + timeout: 5s + retries: 5 ballista-executor: image: ballista-executor build: @@ -46,13 +54,21 @@ services: volumes: - ./benchmarks/data:/data depends_on: - - ballista-scheduler + ballista-scheduler: + condition: service_healthy + healthcheck: + test: ["CMD", "nc", "-z", "ballista-executor", "50051"] + interval: 5s + timeout: 5s + retries: 5 ballista-client: image: ballista-benchmarks build: dockerfile: dev/docker/ballista-benchmarks.Dockerfile context: . - command: ["/bin/sh", "sleep", "infinity"] + command: ["/bin/bash", "-c", "sleep infinity"] + ports: + - "50051:50051" environment: - RUST_LOG=info volumes: diff --git a/docs/source/user-guide/flightsql.md b/docs/source/user-guide/flightsql.md index df990d019..cd7b9fce9 100644 --- a/docs/source/user-guide/flightsql.md +++ b/docs/source/user-guide/flightsql.md @@ -54,11 +54,19 @@ choco install docker-desktop docker-compose ## Building Ballista +To build in docker (non-linux systems): + ```shell git clone https://github.com/apache/arrow-ballista.git dev/build-ballista-rust.sh ``` +Or in linux-based systems with the correct dependencies installed, one can simply: + +```shell +cargo build --release --all --features flight-sql +``` + ## Run Docker Containers ```shell