oktopus/agent/Dockerfile
2024-07-16 09:21:51 -03:00

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}