forked from bacnet-stack/bacnet-stack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
53 lines (42 loc) · 1.61 KB
/
Dockerfile
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
FROM ubuntu:focal
## Usage:
# docker build -t bacnet --target bacnet .
# docker run --rm --name bacnet -d bacnet <device_id> [<device_name>]
## To run client commands that affect this server from inside the same
## container, use BBMD Foreign Device Registration by first exporting
## the following:
# BACNET_IP_PORT, BACNET_BBMD_PORT, and BACNET_BBMD_ADDRESS
## For example:
# docker run --rm --name bacnet -d bacnet
# docker exec -ti bacnet bash
# export BACNET_IP_PORT=47809
# export BACNET_BBMD_PORT=47808
# export BACNET_BBMD_ADDRESS="$(hostname -I | cut -d' ' -f1)"
# /opt/bacnet/bin/bacwi -1 1234
# /opt/bacnet/bin/bacrp 1234 device 1234 object-name
## etc.
## Check bacnet-stack/bin/readme.txt for more docs related to the
## example utilities and environment variables. Note that this docker
## image does not add the shell scripts in that folder as many of them
## are broken. Even so, reading them may be instructive.
SHELL ["/bin/bash", "-c"]
RUN set -xe; \
apt-get update; apt-get upgrade -y; apt-get --purge autoremove -y; \
apt-get install -y build-essential curl; \
apt-get -y autoclean; apt-get -y clean
RUN set -euxo pipefail; \
mkdir -p bin; \
curl -LSs https://github.com/bacnet-stack/bacnet-stack/archive/refs/tags/bacnet-stack-1.0.0.tar.gz -o bacnet-stack.tar.gz; \
tar -xzf bacnet-stack.tar.gz; \
( cd bacnet-*/; \
make; \
rm -f -- bin/*.{bat,sh,txt}; \
mv -- bin/* /build/bin/; \
); \
rm -rf bacnet-*/
FROM ubuntu:focal AS bacnet
WORKDIR /opt/bacnet
COPY --from=builder /build/bin/* /opt/bacnet/bin/
EXPOSE 47808/udp
ENTRYPOINT ["/opt/bacnet/bin/bacserv"]
CMD ["1234", "test_server"]