-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathDockerfile.ubuntu
More file actions
104 lines (88 loc) · 2.41 KB
/
Dockerfile.ubuntu
File metadata and controls
104 lines (88 loc) · 2.41 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
# Ubuntu Dockerfile
#
# Author: Steffen Vogel <post@steffenvogel.de>
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
# SPDX-License-Identifier: Apache-2.0
# You can choose between Debian and Ubuntu here
ARG DISTRO=ubuntu
ARG UBUNTU_VERSION=24.04
ARG DISTRO=${DISTRO}
FROM ${DISTRO}:${UBUNTU_VERSION} AS dev
ARG DISTRO
ENV DEBIAN_FRONTEND=noninteractive
# Toolchain
RUN apt-get update && \
apt-get install -y \
gcc g++ \
pkg-config cmake make meson \
autoconf automake autogen libtool ninja-build \
texinfo git git-svn curl tar wget diffutils \
flex bison \
protobuf-compiler protobuf-c-compiler \
clang-format clangd \
python3-venv unzip \
ninja-build mercurial \
xmlto udev
# Dependencies
RUN apt-get update && \
apt-get install -y \
libcomedi-dev \
libconfig-dev \
libcriterion-dev \
libcurl4-openssl-dev \
libfmt-dev \
libglib2.0-dev \
libgraphviz-dev \
libhiredis-dev \
libibverbs-dev \
libjansson-dev \
liblua5.3-dev \
libmodbus-dev \
libmosquitto-dev \
libnanomsg-dev \
libnice-dev \
libnl-3-dev libnl-route-3-dev \
libprotobuf-c-dev \
libprotobuf-dev \
librabbitmq-dev \
librdkafka-dev \
librdmacm-dev \
libre2-dev \
libspdlog-dev \
libssl-dev \
libusb-1.0-0-dev \
libwebsockets-dev \
libzmq3-dev \
python3-dev \
python3-pybind11 \
uuid-dev
# Install unpackaged dependencies from source
ADD packaging/patches /deps/patches
ADD packaging/deps.sh /deps
RUN bash /deps/deps.sh
# Expose ports for HTTP and WebSocket frontend
EXPOSE 80
EXPOSE 443
WORKDIR /villas
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
FROM dev AS app
ARG CMAKE_OPTS
COPY . /villas/
RUN rm -rf /villas/build && mkdir /villas/build
WORKDIR /villas/build
RUN cmake ${CMAKE_OPTS} .. && \
make -j$(nproc) install && \
ldconfig
ENTRYPOINT ["villas"]
LABEL \
org.label-schema.schema-version="1.0" \
org.label-schema.name="VILLASnode" \
org.label-schema.license="Apache-2.0" \
org.label-schema.vendor="The VILLASframework authors" \
org.label-schema.author.name="Steffen Vogel" \
org.label-schema.author.email="post@steffenvogel.de" \
org.label-schema.description="An image containing all build-time dependencies for VILLASnode based on Ubuntu" \
org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \
org.label-schema.vcs-url="https://github.com/VILLASframework/node" \
org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker"