Repository navigation
Expand file tree
/
Copy pathDockerfile
More file actions
114 lines (100 loc) · 4.51 KB
/
Copy pathDockerfile
File metadata and controls
114 lines (100 loc) · 4.51 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
# Final ODK image
# (built upon the odklite image)
ARG ODKLITE_TAG=latest
FROM obolibrary/odklite:${ODKLITE_TAG}
LABEL maintainer="obo-tools@googlegroups.com"
WORKDIR /odk
ARG ODK_VERSION 0.0.0
ENV ODK_VERSION=$ODK_VERSION
# Software versions
ENV JENA_VERSION=6.2.0
ENV SCALA_CLI_VERSION=1.17.1
ENV OWLTOOLS_VERSION=2020-04-06
ENV YQ_VERSION=4.53.6
# Avoid repeated downloads of script dependencies by mounting the local coursier cache:
# docker run -v $HOME/.coursier/cache/v1:/odk/tools/.coursier-cache ...
ENV COURSIER_CACHE="/odk/tools/.coursier-cache"
# Install tools provided by Ubuntu.
RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \
build-essential \
openssh-client \
openjdk-21-jdk-headless \
maven \
python3-dev \
subversion \
automake \
aha \
dos2unix \
libjson-perl \
libbusiness-isbn-perl \
pkg-config \
xlsx2csv \
nodejs \
npm \
graphviz \
python3-psycopg2 \
just
# Install run-time dependencies for Soufflé.
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \
g++ \
libffi-dev \
libncurses5-dev \
libsqlite3-dev \
mcpp \
zlib1g-dev
# Copy everything that we have prepared in the builder image.
COPY --from=obolibrary/odkbuild:latest /staging/full /
# Install Konclude.
# On x86_64, we get it from a pre-built release from upstream; on arm64,
# we use a custom pre-built binary to which we just need to add the
# run-time dependencies (the binary is not statically linked).
ARG TARGETARCH
RUN test "x$TARGETARCH" = xamd64 && ( \
wget -nv https://github.com/konclude/Konclude/releases/download/v0.7.0-1138/Konclude-v0.7.0-1138-Linux-Docker-Compiled-x64-GCC4.8.4-Static-Qt5.12.10.zip \
-O /odk/Konclude.zip && \
unzip Konclude.zip && \
mv Konclude-v0.7.0-1138-Linux-Docker-Compiled-x64-GCC4.8.4-Static-Qt5.12.10/Binaries/Konclude /odk/bin/Konclude && \
rm -rf Konclude-v0.7.0-1138-Linux-Docker-Compiled-x64-GCC4.8.4-Static-Qt5.12.10 && \
rm Konclude.zip \
) || ( \
DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \
libqt5xml5 libqt5network5 libqt5concurrent5 && \
wget -nv https://incenp.org/files/softs/konclude/0.7/Konclude-v0.7.0-1138-Linux-arm64-GCC.zip \
-O /odk/Konclude.zip && \
unzip Konclude.zip && \
mv Konclude-v0.7.0-1138-Linux-arm64-GCC/Binaries/Konclude /odk/bin/Konclude && \
rm -rf Konclude-v0.7.0-1138-Linux-arm64-GCC && \
rm Konclude.zip \
)
# Install OWLTOOLS.
RUN wget -nv https://github.com/owlcollab/owltools/releases/download/$OWLTOOLS_VERSION/owltools \
-O /odk/tools/owltools.jar && \
echo "#!/bin/sh" > /odk/bin/owltools && \
echo "exec java \$JAVA_OPTS -DentityExpansionLimit=4086000 -Djava.awt.headless=true -jar /odk/tools/owltools.jar \"\$@\"" >> /odk/bin/owltools && \
echo "#!/bin/sh" > /odk/bin/ontology-release-runner && \
echo "exec java \$JAVA_OPTS -cp /odk/tools/owltools.jar owltools.ontologyrelease.OboOntologyReleaseRunner \"\$@\"" >> /odk/bin/ontology-release-runner && \
chmod 755 /odk/bin/owltools && \
chmod 755 /odk/bin/ontology-release-runner
# Install Jena.
RUN wget -nv http://archive.apache.org/dist/jena/binaries/apache-jena-$JENA_VERSION.tar.gz -O- | tar xzC /odk/tools && \
mv /odk/tools/apache-jena-$JENA_VERSION /odk/tools/apache-jena && \
find /odk/tools/apache-jena/bin -type f -executable -exec ln -s {} /odk/bin \;
# Install Scala-CLI
RUN wget -nv https://github.com/VirtusLab/scala-cli/releases/download/v$SCALA_CLI_VERSION/scala-cli.jar \
-O /odk/tools/scala-cli.jar && \
echo "#!/bin/sh" > /odk/bin/scala-cli && \
echo "exec java \$JAVA_OPTS -jar /odk/tools/scala-cli.jar \"\$@\"" >> /odk/bin/scala-cli && \
chmod 0755 /odk/bin/scala-cli
# Install obographviz
RUN npm install -g obographviz && \
chown -R root:root /usr/local/lib/node_modules
# Install Mike Farah's (mf) YQ command-line YAML, JSON and XML processor
RUN if [ "$TARGETARCH" = "amd64" ]; then \
wget -nv https://github.com/mikefarah/yq/releases/download/v$YQ_VERSION/yq_linux_amd64 -O /odk/bin/yq-mf && \
chmod 0755 /odk/bin/yq-mf ; \
elif [ "$TARGETARCH" = "arm64" ]; then \
wget -nv https://github.com/mikefarah/yq/releases/download/v$YQ_VERSION/yq_linux_arm64 -O /odk/bin/yq-mf && \
chmod 0755 /odk/bin/yq-mf ; \
else \
echo "Unsupported TARGETARCH: $TARGETARCH" && exit 1 ; \
fi