-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile.local
88 lines (79 loc) · 2.92 KB
/
Dockerfile.local
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
#######################################################################################
#
# Dockerfile to use BeeDeem through a Docker container.
# Create Docker image from locally built BeeDeeM and BeeDeeM-Tools.
#
# Copyright (c) 2017-23, Patrick G. Durand
#
#######################################################################################
# ###
# Base commands.
#
# We use standard Ubuntu 18 Linux.
#
FROM debian:11-slim
# Maintainer of BeeDeeM
MAINTAINER Patrick G. Durand
# ###
# Configuring release of tools to package.
#
ENV BDM_VERSION=5.0.0
ENV BDMT_VERSION=2.1.2
# ###
# Install dependencies.
# software-properties-common required to install Java Runtime
# libbz2 libidn are required by blast tools included in BeeDeeM.
# libxext libxrender libxtst libxi are required by Bioinformatics-Core-API included
# in BeeDeeM and BeeDeeM-Tools.
# bash is required when running this image by Nextflow pipelines.
# wget is required to install some banks (e.g. GeneOntology).
# unzip is required to deploy BeeDeeM archive
# openssh-server is required to submit jobs on cluster through ssh connection
RUN apt-get -y update
RUN apt-get -y install gawk openssh-client software-properties-common bzip2 libidn11 bash wget libxext6 libxrender1 libxtst6 libxi6 unzip
# ###
# Java
# See See https://www.oracle.com/java/technologies/downloads/#java17
RUN cd /opt \
&& wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.deb \
&& apt install -y /opt/jdk-17_linux-x64_bin.deb \
&& rm jdk-17_linux-x64_bin.deb
# ###
# BeeDeeM. Get pre-built local one.
#
COPY beedeem-${BDM_VERSION}-distrib.zip /opt
RUN \
mkdir -p /opt/beedeem/tmp-install && \
mv /opt/beedeem-${BDM_VERSION}-distrib.zip /opt/beedeem/tmp-install && \
cd /opt/beedeem/tmp-install && \
unzip beedeem-${BDM_VERSION}-distrib.zip && \
tar -zxf beedeem-${BDM_VERSION}.tar.gz -C /opt/beedeem && \
cd .. && \
rm -rf tmp-install && \
cp scripts/bdm.sh ./bdm && \
sed -i 's/@KL_WORKING_DIR@/\/beedeem-wk/g' bdm && \
sed -i 's/@JAVA_ARGS@/-Xms128M -Xmx2048M -Djava.io.tmpdir=\$KL_WORKING_DIR -DKL_LOG_TYPE=console/g' bdm && \
cp scripts/dbms.config conf && \
sed -i 's/@BIOBASE_ROOTDIR@/\/beedeem-db/g' conf/dbms.config && \
chmod +x bdm && \
chmod +x /opt/beedeem/external/bin/linux/* && \
chmod +x /opt/beedeem/conf/scripts/*.sh && \
chmod +x /opt/beedeem/conf/scripts/scheduler/*.sh && \
cd /opt/beedeem/external/bin && rm -rf macos windows
# ###
# Add BeeDeeM-tools. Use pre-built local one.
#
COPY beedeem-tools-${BDMT_VERSION}.tar.gz /opt
RUN \
cd /opt && \
mkdir beedeem-tools && \
cd beedeem-tools && \
mv ../beedeem-tools-${BDMT_VERSION}.tar.gz . && \
gunzip beedeem-tools-${BDMT_VERSION}.tar.gz && \
tar -xf beedeem-tools-${BDMT_VERSION}.tar && \
rm beedeem-tools-${BDMT_VERSION}.tar && \
chmod +x *.sh
# ###
# BeeDeeM runtime environment variables.
#
ENV PATH=/opt/beedeem:/opt/beedeem-tools:$PATH