66 lines
1.6 KiB
Docker
66 lines
1.6 KiB
Docker
#
|
|
# file Dockerfile
|
|
#
|
|
# Base docker image with all required dependencies for OB-USP-A
|
|
#
|
|
# Based on Ubuntu 22.10 (Kinetic Kudu), which provides libmosquitto 2.0.11 and libwebsockets 4.1.6
|
|
# This image includes some basic compilation tools (automake, autoconf)
|
|
#
|
|
# One-liner execution line (straightforward build for OB-USP-A execution):
|
|
# > docker build -f Dockerfile -t obuspa:latest .
|
|
#
|
|
# Multi-stage builds execution lines (to tag build stages):
|
|
# 1) Create the build environment image:
|
|
# > docker build -f Dockerfile -t obuspa:build-env --target build-env .
|
|
# 2) Create the OB-USP-A image, then build the application
|
|
# > docker build -f Dockerfile -t obuspa:latest --target runner .
|
|
#
|
|
FROM ubuntu:lunar AS build-env
|
|
|
|
# Install dependencies
|
|
RUN apt-get update && apt-get -y install \
|
|
libssl-dev \
|
|
libcurl4-openssl-dev\
|
|
libsqlite3-dev \
|
|
libz-dev \
|
|
autoconf \
|
|
automake \
|
|
libtool \
|
|
libmosquitto-dev \
|
|
pkg-config \
|
|
make \
|
|
git \
|
|
cmake \
|
|
g++ \
|
|
&& apt-get clean
|
|
|
|
RUN git clone https://github.com/warmcat/libwebsockets.git /tmp/libwebsockets && \
|
|
cd /tmp/libwebsockets && \
|
|
mkdir build && \
|
|
cd build && \
|
|
cmake .. && \
|
|
make && \
|
|
make install && \
|
|
ldconfig
|
|
|
|
FROM build-env AS runner
|
|
|
|
ENV MAKE_JOBS=8
|
|
ENV OBUSPA_ARGS="-v4"
|
|
|
|
# Copy in all of the code
|
|
# Then compile, as root.
|
|
COPY obuspa /obuspa
|
|
RUN cd /obuspa/ && \
|
|
autoreconf -fi && \
|
|
./configure && \
|
|
make -j${MAKE_JOBS} && \
|
|
make install
|
|
|
|
# Then delete the code
|
|
# that's no longer needed
|
|
RUN rm -rf /obuspa
|
|
|
|
# Run obuspa with args expanded
|
|
CMD obuspa ${OBUSPA_ARGS}
|