|
1 |
| -FROM adoptopenjdk/openjdk14 |
2 |
| -MAINTAINER 877dev < [email protected]> |
| 1 | +# Acknowledgements: |
| 2 | +# Based on: |
| 3 | +# https://github.com/SensorsIot/IOTstack/blob/master/.templates/blynk_server/Dockerfile |
| 4 | +# (as at commit ID 4dff89c1bb6a5b1c01d3c087dcb662256a0c050f) |
| 5 | +# Borrows from: |
| 6 | +# https://github.com/Peterkn2001/blynk-server/blob/master/server/Docker/Dockerfile |
| 7 | +# (as at commit ID 889c7e55161832e21264d993d9fa5abd1c015e1c) |
3 | 8 |
|
4 |
| -#RUN apt-get update |
5 |
| -#RUN apt-get install -y apt-utils |
6 |
| -#RUN apt-get install -y default-jdk curl |
| 9 | +FROM ubuntu |
7 | 10 |
|
8 |
| -ENV BLYNK_SERVER_VERSION 0.41.16 |
9 |
| -RUN mkdir /blynk |
10 |
| -RUN curl -L https://github.com/blynkkk/blynk-server/releases/download/v${BLYNK_SERVER_VERSION}/server-${BLYNK_SERVER_VERSION}.jar > /blynk/server.jar |
| 11 | +# declare the version to be built, defaulting to 0.41.16 (which is |
| 12 | +# current as of 2021-10-22) |
| 13 | +ARG BLYNK_SERVER_VERSION=0.41.16 |
11 | 14 |
|
12 |
| -# Create data folder. To persist data, map a volume to /data |
13 |
| -RUN mkdir /data |
| 15 | +# form the download URL |
| 16 | +ENV BLYNK_SERVER_URL=https://github.com/Peterkn2001/blynk-server/releases/download/v${BLYNK_SERVER_VERSION}/server-${BLYNK_SERVER_VERSION}.jar |
14 | 17 |
|
15 |
| -# Create configuration folder. To persist data, map a file to /config/server.properties |
16 |
| -RUN mkdir /config && touch /config/server.properties |
17 |
| -VOLUME ["/config", "/data/backup"] |
| 18 | +# Add support packages to the base image |
| 19 | +RUN apt-get update \ |
| 20 | + && apt-get install -y \ |
| 21 | + apt-utils \ |
| 22 | + libreadline8 \ |
| 23 | + libreadline-dev \ |
| 24 | + && apt-get install -y \ |
| 25 | + curl \ |
| 26 | + libxrender1 \ |
| 27 | + maven \ |
| 28 | + openjdk-11-jdk \ |
| 29 | + rsync |
18 | 30 |
|
19 |
| -# IP port listing: |
20 |
| -# 8080: Hardware without ssl/tls support |
21 |
| -# 9443: Blynk app, https, web sockets, admin port |
22 |
| -EXPOSE 8080 9443 |
| 31 | +# Add IOTstack-specific support |
| 32 | +ENV IOTSTACK_DEFAULTS_DIR="iotstack_defaults" |
| 33 | +ENV IOTSTACK_ENTRY_POINT="docker-entrypoint.sh" |
| 34 | +COPY ${IOTSTACK_DEFAULTS_DIR} /${IOTSTACK_DEFAULTS_DIR} |
| 35 | +COPY ${IOTSTACK_ENTRY_POINT} /${IOTSTACK_ENTRY_POINT} |
| 36 | +RUN chmod 755 /${IOTSTACK_ENTRY_POINT} |
23 | 37 |
|
24 |
| -WORKDIR /data |
25 |
| -ENTRYPOINT ["java", "-jar", "/blynk/server.jar", "-dataFolder", "/data", "-serverConfig", "/config/server.properties", "-mailConfig", "/config/mail.properties"] |
| 38 | +# define well-known paths |
| 39 | +ENV IOTSTACK_DATA_DIR="/data" |
| 40 | +ENV IOTSTACK_CONF_DIR="/config" |
| 41 | +ENV IOTSTACK_JAVA_DIR="/blynk" |
| 42 | + |
| 43 | +# Create and populate expected folders |
| 44 | +RUN mkdir -p ${IOTSTACK_DATA_DIR} ${IOTSTACK_JAVA_DIR} \ |
| 45 | + && curl -L ${BLYNK_SERVER_URL} >"${IOTSTACK_JAVA_DIR}/server.jar" |
| 46 | + |
| 47 | +# declare expected mapped volumes |
| 48 | +VOLUME ["${IOTSTACK_CONF_DIR}", "${IOTSTACK_DATA_DIR}"] |
| 49 | + |
| 50 | +# Expose assumed internal ports: |
| 51 | +# 8080 http.port |
| 52 | +# 8440 hardware.mqtt.port |
| 53 | +# 9443 https.port |
| 54 | +EXPOSE 8080 8440 9443 |
| 55 | + |
| 56 | +# set the working directory |
| 57 | +WORKDIR ${IOTSTACK_DATA_DIR} |
| 58 | + |
| 59 | +# define launch procedure |
| 60 | +ENTRYPOINT ["/docker-entrypoint.sh"] |
| 61 | +CMD ["java", "-jar", "/blynk/server.jar", "-dataFolder", "/data", "-serverConfig", "/config/server.properties", "-mailConfig", "/config/mail.properties"] |
| 62 | + |
| 63 | +# supplement image metadata |
| 64 | +LABEL blynk-server.version=${BLYNK_SERVER_VERSION} |
| 65 | +LABEL blynk-server.url=${BLYNK_SERVER_URL} |
| 66 | +LABEL com.github.SensorsIot.IOTstack.Dockerfile.maintainer= "877dev <[email protected]>" |
| 67 | +LABEL com.github.Peterkn2001.blynk-server.Dockerfile.maintainer= "Florian Mauduit <[email protected]>" |
| 68 | + |
| 69 | +# unset variables that are not needed by docker-entrypoint.sh |
| 70 | +ENV IOTSTACK_ENTRY_POINT= |
| 71 | +ENV IOTSTACK_DATA_DIR= |
| 72 | +ENV IOTSTACK_JAVA_DIR= |
| 73 | +ENV BLYNK_SERVER_URL= |
| 74 | + |
| 75 | +# EOF |
0 commit comments