Add a Dockerfile and update bin readme (#202)

* add dockerfile for easier testing

* whitespace

* update tools source location in bin readme

* add target to example build and remove optional CMD from example run
This commit is contained in:
Chris Salisbury
2021-10-30 00:52:28 +09:00
committed by GitHub
parent 36bd46c5e8
commit 94f02a9a21
2 changed files with 70 additions and 17 deletions
+53
View File
@@ -0,0 +1,53 @@
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"]
+17 -17
View File
@@ -178,20 +178,20 @@ The source code and makefiles for the bacnet-tools is included in the
BACnet Protocol Stack library and can be found at: BACnet Protocol Stack library and can be found at:
http://bacnet.sourceforge.net/ http://bacnet.sourceforge.net/
The bacnet-tools source is located in bacnet-stack/demo/project where: The bacnet-tools source is located in bacnet-stack/apps/project where:
bacarf - bacnet-stack/demo/readfile bacarf - bacnet-stack/apps/readfile
bacawf - bacnet-stack/demo/writefile bacawf - bacnet-stack/apps/writefile
bacdcc - bacnet-stack/demo/dcc bacdcc - bacnet-stack/apps/dcc
bacepics - bacnet-stack/demo/epics bacepics - bacnet-stack/apps/epics
bacrd - bacnet-stack/demo/reinit bacrd - bacnet-stack/apps/reinit
bacrp - bacnet-stack/demo/readprop bacrp - bacnet-stack/apps/readprop
bacrpm - bacnet-stack/demo/readpropm bacrpm - bacnet-stack/apps/readpropm
bacscov - bacnet-stack/demo/scov bacscov - bacnet-stack/apps/scov
bacts - bacnet-stack/demo/timesync bacts - bacnet-stack/apps/timesync
bacucov - bacnet-stack/demo/ucov bacucov - bacnet-stack/apps/ucov
bacupt - bacnet-stack/demo/uptransfer bacupt - bacnet-stack/apps/uptransfer
bacwh - bacnet-stack/demo/whohas bacwh - bacnet-stack/apps/whohas
bacwi - bacnet-stack/demo/whois bacwi - bacnet-stack/apps/whois
bacwp - bacnet-stack/demo/writeprop bacwp - bacnet-stack/apps/writeprop
bacserv - bacnet-stack/demo/server bacserv - bacnet-stack/apps/server
etc. etc.