Dockerfile 2.75 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
# Dockerfile for VILLASfpga development.
#
# This Dockerfile builds an image which contains all library dependencies
# and tools to build VILLASfpga.
# However, VILLASfpga itself it not part of the image.
#
# This image can be used for developing VILLASfpga
# by running:
#   make docker
#
# @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
Steffen Vogel's avatar
Steffen Vogel committed
12
# @copyright 2017-2018, Institute for Automation of Complex Power Systems, EONERC
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# @license GNU General Public License (version 3)
#
# VILLASfpga
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
###################################################################################

31
FROM nvidia/cuda:9.2-devel-centos7
32 33 34 35 36 37 38 39 40 41 42 43 44

LABEL \
	org.label-schema.schema-version="1.0" \
	org.label-schema.name="VILLASfpga" \
	org.label-schema.license="GPL-3.0" \
	org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \
	org.label-schema.author.name="Steffen Vogel" \
	org.label-schema.author.email="stvogel@eonerc.rwth-aachen.de" \
	org.label-schema.description="A image containing all build-time dependencies for VILLASfpga based on Fedora" \
	org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \
	org.label-schema.vcs-url="https://git.rwth-aachen.de/VILLASframework/VILLASfpga" \
	org.label-schema.usage="https://villas.fein-aachen.org/doc/fpga.html"

45
# Some of the dependencies are only available in our own repo
46
ADD https://packages.fein-aachen.org/redhat/fein.repo /etc/yum.repos.d/
47 48 49 50

# Enable Extra Packages for Enterprise Linux (EPEL) and Software collection repo
RUN yum -y install epel-release centos-release-scl

51
# Toolchain
52
RUN yum -y install \
53
	devtoolset-7-toolchain \
54
	pkgconfig make cmake3 \
55 56 57 58
	autoconf automake autogen libtool \
	texinfo git curl tar

# Several tools only needed for developement and testing
59
RUN yum -y install \
60 61 62
	rpmdevtools rpm-build

# Dependencies
63
RUN yum -y install \
64
	jansson-devel \
Steffen Vogel's avatar
Steffen Vogel committed
65
	openssl-devel \
66 67
	libxil-devel \
	lapack-devel
68 69 70

# Build & Install Criterion
COPY thirdparty/criterion /tmp/criterion
71
RUN mkdir -p /tmp/criterion/build && cd /tmp/criterion/build && cmake3 .. && make install && rm -rf /tmp/*
72 73 74

ENV LD_LIBRARY_PATH /usr/local/lib:/usr/local/lib64

75
WORKDIR /fpga
76
ENTRYPOINT scl enable devtoolset-7 bash