-
Notifications
You must be signed in to change notification settings - Fork 39
Expand file tree
/
Copy pathDockerfile
More file actions
143 lines (112 loc) · 4.94 KB
/
Dockerfile
File metadata and controls
143 lines (112 loc) · 4.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Copyright (c) Contributors to the aswf-docker Project. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# !!! This file is automatically generated from a template and the `image.yaml` file in the same folder !!!
ARG ASWF_ORG
ARG ASWF_PKG_ORG
ARG CI_COMMON_VERSION
ARG ASWF_CLANG_MAJOR_VERSION
ARG ASWF_CONAN_CHANNEL
ARG CONAN_USER_DATA_FOLDER
ARG ASWF_CLANG_VERSION
ARG ASWF_NINJA_VERSION
ARG ASWF_CUDA_VERSION
ARG ASWF_CCACHE_VERSION
ARG ASWF_DTS_VERSION
ARG ASWF_SONAR_VERSION
ARG ASWF_CONAN_VERSION
ARG ASWF_ROCM_VERSION
ARG ASWF_CONAN_PYTHON_VERSION
# Comment out this block to use Conan packages
FROM ${ASWF_PKG_ORG}/ci-package-clang:$CI_COMMON_VERSION-$ASWF_CLANG_VERSION as ci-package-clang
FROM ${ASWF_PKG_ORG}/ci-package-ninja:$CI_COMMON_VERSION-$ASWF_NINJA_VERSION as ci-package-ninja
FROM nvidia/cudagl:${ASWF_CUDA_VERSION}-devel-centos7 as ci-common
ARG ASWF_ORG
ARG ASWF_PKG_ORG
ARG ASWF_VERSION
ARG CI_COMMON_VERSION
ARG ASWF_CONAN_CHANNEL
ARG CONAN_USER_DATA_FOLDER
ARG ASWF_CLANG_VERSION
ARG ASWF_NINJA_VERSION
ARG ASWF_CUDA_VERSION
ARG ASWF_CCACHE_VERSION
ARG ASWF_DTS_VERSION
ARG ASWF_SONAR_VERSION
ARG ASWF_CONAN_VERSION
ARG ASWF_ROCM_VERSION
ARG ASWF_CONAN_PYTHON_VERSION
LABEL org.opencontainers.image.name="$ASWF_ORG/ci-common"
LABEL org.opencontainers.image.title="Common CI Docker Image"
LABEL org.opencontainers.image.description="Contains: GCC, Clang, Jinja, ccache and all base OS libraries"
LABEL org.opencontainers.image.url="http://aswf.io/"
LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/master/ci-common/Dockerfile"
LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation"
LABEL org.opencontainers.image.authors="Built by aswf.io CI Working Group"
LABEL org.opencontainers.image.version="${ASWF_VERSION}"
LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}"
LABEL io.aswf.docker.versions.clang="$ASWF_CLANG_VERSION"
LABEL io.aswf.docker.versions.ninja="$ASWF_NINJA_VERSION"
LABEL io.aswf.docker.versions.cuda="$ASWF_CUDA_VERSION"
LABEL io.aswf.docker.versions.ccache="$ASWF_CCACHE_VERSION"
LABEL io.aswf.docker.versions.dts="$ASWF_DTS_VERSION"
LABEL io.aswf.docker.versions.sonar="$ASWF_SONAR_VERSION"
LABEL io.aswf.docker.versions.conan="$ASWF_CONAN_VERSION"
LABEL io.aswf.docker.versions.rocm="$ASWF_ROCM_VERSION"
ENV ASWF_ORG=${ASWF_ORG}
ENV ASWF_VERSION=${ASWF_VERSION}
ENV VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION}
ENV ASWF_CLANG_VERSION=$ASWF_CLANG_VERSION
ENV ASWF_NINJA_VERSION=$ASWF_NINJA_VERSION
ENV ASWF_CUDA_VERSION=$ASWF_CUDA_VERSION
ENV ASWF_CCACHE_VERSION=$ASWF_CCACHE_VERSION
ENV ASWF_DTS_VERSION=$ASWF_DTS_VERSION
ENV ASWF_SONAR_VERSION=$ASWF_SONAR_VERSION
ENV ASWF_CONAN_VERSION=$ASWF_CONAN_VERSION
ENV ASWF_ROCM_VERSION=$ASWF_ROCM_VERSION
ENV ASWF_CONAN_PYTHON_VERSION=$ASWF_CONAN_PYTHON_VERSION
# Comment out this block to use Conan packages
COPY --from=ci-package-clang /. /usr/local/
COPY --from=ci-package-ninja /. /usr/local/
COPY ci-common/README.md ci-common/image.yaml /usr/local/aswf/
USER root
COPY scripts/common/install_yumpackages.sh \
/tmp/
RUN /tmp/install_yumpackages.sh
RUN mkdir /opt/aswf
WORKDIR /opt/aswf
ENV LD_LIBRARY_PATH=/opt/rocm/lib:/usr/local/lib:/usr/local/lib64:/opt/rh/httpd24/root/usr/lib64:/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \
PATH=/opt/rh/rh-git218/root/usr/bin:/usr/local/bin:/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/bin/:/opt/rocm/hcc/bin:/opt/rocm/hip/bin:/opt/rocm/bin:/opt/rocm/hcc/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin \
PERL5LIB=/opt/rh/rh-git218/root/usr/share/perl5/vendor_perl \
MANPATH=/opt/rh/rh-git218/root/usr/share/man
COPY scripts/common/install_sonar.sh \
scripts/common/install_ccache.sh \
scripts/common/install_dev_cmake.sh \
/tmp/
RUN export DOWNLOADS_DIR=/tmp/downloads && \
mkdir /tmp/downloads && \
/tmp/install_sonar.sh && \
export PATH=${PATH}:/opt/aswfbuilder/bin && \
/tmp/install_dev_cmake.sh && \
/tmp/install_ccache.sh && \
rm -rf /tmp/downloads && \
rm -rf /opt/aswfbuilder
COPY scripts/common/setup_aswfuser.sh /tmp
RUN /tmp/setup_aswfuser.sh
ENV ASWF_CONAN_ROOT=/opt/conan
COPY ../scripts/common/install_conan.sh /tmp/
RUN --mount=type=cache,sharing=private,target=/tmp/downloads \
/tmp/install_conan.sh
COPY ../packages/conan/settings /opt/conan_home/.conan
ENV CONAN_USER_HOME=/opt/conan_home
# Uncomment to use Conan packages instead of Docker ones
#
# RUN cd /usr/local/ && \
# echo $'[generators]\n\
# cmake\n\
# [imports]\n\
# ., * -> .\n\
# [requires]\n' >> /usr/local/conanfile.txt && \
# # echo "clang/${ASWF_CLANG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}" >> /usr/local/conanfile.txt && \
# # echo "ninja/${ASWF_NINJA_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}" >> /usr/local/conanfile.txt && \
# # conan install . && \
# rm -rf ${CONAN_USER_DATA_FOLDER}/*