blob: 0a3f320f42b93f58dbfb51c85a4710383b5596a5 [file] [log] [blame]
# 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.
# We use the cache_from feature introduced in file form version 3.4 (released 2017-11-01)
version: "3.4"
# For simplicity, only the centos7_cpu is commented. But the comments apply to
# all other services as well.
services:
###################################################################################################
# Dockerfile.build.centos7 based images used for building on CentOS7. On
# CentOS7, we respectively test the oldest supported toolchain and dependency
# versions
###################################################################################################
centos7_cpu:
# The resulting image will be named build.centos7_cpu:latest and will be
# pushed to the dockerhub user specified in the environment variable
# ${DOCKER_CACHE_REGISTRY} (typicall "mxnetci") under this name
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_cpu:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
# Use "base" target declared in Dockerfile.build.centos7 as "build.centos7_cpu:latest"
target: base
args:
# BASE_IMAGE is used to dynamically specify the FROM image in Dockerfile.build.centos7
BASE_IMAGE: centos:7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_cpu:latest
centos7_gpu_cu101:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu101:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:10.1-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu101:latest
centos7_gpu_cu102:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu102:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:10.2-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu102:latest
centos7_gpu_cu110:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu110:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:11.0-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu110:latest
centos7_gpu_cu112:
image: ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu112:latest
build:
context: .
dockerfile: Dockerfile.build.centos7
target: base
args:
BASE_IMAGE: nvidia/cuda:11.2.0-cudnn8-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.centos7_gpu_cu112:latest
###################################################################################################
# Dockerfile.build.ubuntu based images. On Ubuntu we test more recent
# toolchain and dependency versions compared to CentOS7. We attempt to update
# the Ubuntu base image every 6 months, following the Ubuntu release cycle,
# and testing the dependencies in their version provided by the respective
# Ubuntu release.
###################################################################################################
ubuntu_cpu:
image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_cpu:latest
build:
context: .
dockerfile: Dockerfile.build.ubuntu
target: base
args:
BASE_IMAGE: ubuntu:20.04
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.ubuntu_cpu:latest
ubuntu_tensorrt_cu111:
image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_tensorrt_cu111:latest
build:
context: .
dockerfile: Dockerfile.build.ubuntu
target: gpu
args:
BASE_IMAGE: nvidia/cuda:11.1-cudnn8-devel-ubuntu18.04
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.ubuntu_tensorrt_cu111:latest
ubuntu_gpu_cu111:
image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu111:latest
build:
context: .
dockerfile: Dockerfile.build.ubuntu
target: gpu
args:
BASE_IMAGE: nvidia/cuda:11.1-cudnn8-devel-ubuntu20.04
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.ubuntu_gpu_cu111:latest
###################################################################################################
# Dockerfile.build.android based images used for testing cross-compilation for plain ARM
###################################################################################################
armv6:
image: ${DOCKER_CACHE_REGISTRY}/build.armv6:latest
build:
context: .
dockerfile: Dockerfile.build.arm
target: armv6
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.armv6:latest
armv7:
image: ${DOCKER_CACHE_REGISTRY}/build.armv7:latest
build:
context: .
dockerfile: Dockerfile.build.arm
target: armv7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.armv7:latest
armv8:
image: ${DOCKER_CACHE_REGISTRY}/build.armv8:latest
build:
context: .
dockerfile: Dockerfile.build.arm
target: armv8
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.armv8:latest
###################################################################################################
# Dockerfile.test.arm based images for testing ARM artefacts via QEMU
###################################################################################################
test.armv7:
image: ${DOCKER_CACHE_REGISTRY}/test.armv7:latest
build:
context: .
dockerfile: Dockerfile.test.arm
args:
BASE_IMAGE: arm32v7/ubuntu:20.04
cache_from:
- ${DOCKER_CACHE_REGISTRY}/test.armv7:latest
test.armv8:
image: ${DOCKER_CACHE_REGISTRY}/test.armv8:latest
build:
context: .
dockerfile: Dockerfile.test.arm
args:
BASE_IMAGE: arm64v8/ubuntu:20.04
cache_from:
- ${DOCKER_CACHE_REGISTRY}/test.armv8:latest
###################################################################################################
# Dockerfile.build.android based images used for testing cross-compilation for Android
###################################################################################################
android_armv7:
image: ${DOCKER_CACHE_REGISTRY}/build.android_armv7:latest
build:
context: .
dockerfile: Dockerfile.build.android
target: armv7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.android_armv7:latest
android_armv8:
image: ${DOCKER_CACHE_REGISTRY}/build.android_armv8:latest
build:
context: .
dockerfile: Dockerfile.build.android
target: armv8
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.android_armv8:latest
###################################################################################################
# Dockerfile.publish.test based images used for testing binary artifacts on minimal systems.
###################################################################################################
publish.test.centos7_cpu:
image: ${DOCKER_CACHE_REGISTRY}/publish.test.centos7_cpu:latest
build:
context: .
dockerfile: Dockerfile.publish.test.centos7
args:
BASE_IMAGE: centos:7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/publish.test.centos7_cpu:latest
publish.test.centos7_gpu:
image: ${DOCKER_CACHE_REGISTRY}/publish.test.centos7_gpu:latest
build:
context: .
dockerfile: Dockerfile.publish.test.centos7
args:
BASE_IMAGE: nvidia/cuda:9.2-cudnn7-devel-centos7
cache_from:
- ${DOCKER_CACHE_REGISTRY}/publish.test.centos7_gpu:latest
###################################################################################################
# Miscellaneous containers
###################################################################################################
jetson:
image: ${DOCKER_CACHE_REGISTRY}/build.jetson:latest
build:
context: .
dockerfile: Dockerfile.build.jetson
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.jetson:latest
ubuntu_cpu_jekyll:
image: ${DOCKER_CACHE_REGISTRY}/build.ubuntu_cpu_jekyll:latest
build:
context: .
dockerfile: Dockerfile.build.ubuntu_cpu_jekyll
cache_from:
- ${DOCKER_CACHE_REGISTRY}/build.ubuntu_cpu_jekyll:latest