# Copyright (c) Facebook, Inc. and its affiliates. # # Licensed 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. # The docker-compose file is used only for running the services: # `docker compose run adapters-cpp` # # If you want to build any of the images you will need to use docker bake: # `docker bake adapters-amd64` # # The target names are defined in docker-bake.hcl, you can use the names # from `docker-compose.yml`, like `adapters-cpp` but those will not make use # of layer caching and will tag images with the wrong tag for the multi-arch images. # Do this for local use only! # # When testing changes you want to push as a PR use docker bake. services: # This is not an actual target and just used to inherit the env and volume # defaults base-block: build: context: . environment: NUM_THREADS: ${NUM_THREADS:-8} # default value for NUM_THREADS CCACHE_DIR: /velox/.ccache volumes: - .:/velox:delegated working_dir: /velox command: /velox/scripts/docker/docker-command.sh ubuntu-cpp: extends: base-block image: ghcr.io/facebookincubator/velox-dev:ubuntu-22.04 build: dockerfile: scripts/docker/ubuntu-22.04-cpp.dockerfile environment: VELOX_DEPENDENCY_SOURCE: BUNDLED # Build dependencies from source centos-cpp: extends: base-block image: ghcr.io/facebookincubator/velox-dev:centos9 build: dockerfile: scripts/docker/centos-multi.dockerfile target: centos9 args: image: quay.io/centos/centos:stream9 VELOX_BUILD_SHARED: "ON" adapters-cpp: extends: centos-cpp image: ghcr.io/facebookincubator/velox-dev:adapters environment: EXTRA_CMAKE_FLAGS: >- -DVELOX_ENABLE_PARQUET=ON -DVELOX_ENABLE_S3=ON build: target: adapters adapters-cuda: extends: adapters-cpp privileged: true deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] environment: CC: /opt/rh/gcc-toolset-14/root/bin/gcc # Default to gcc-14 CXX: /opt/rh/gcc-toolset-14/root/bin/g++ # Default to gcc-14 CUDAHOSTCXX: /opt/rh/gcc-toolset-14/root/bin/g++ # Default to gcc-14 presto-java: extends: base-block image: ghcr.io/facebookincubator/velox-dev:presto-java build: args: - PRESTO_VERSION=0.295 dockerfile: scripts/docker/java.dockerfile spark-server: extends: base-block image: ghcr.io/facebookincubator/velox-dev:spark-server build: args: - SPARK_VERSION=3.5.1 dockerfile: scripts/docker/java.dockerfile target: spark-server fedora: extends: base-block image: ghcr.io/facebookincubator/velox-dev:fedora build: dockerfile: scripts/docker/fedora.dockerfile target: fedora environment: VELOX_BUILD_SHARED: "ON"