sdrangel/swagger/docker/codegen/Dockerfile

54 wiersze
1.7 KiB
Docker

FROM ubuntu:20.04 AS base
ARG uid
ENV DEBIAN_FRONTEND=noninteractive
# Create a user with sudo rights
RUN apt-get update && apt-get -y install sudo
RUN useradd -m appuser -u ${uid} && echo "appuser:appuser" | chpasswd \
&& adduser appuser sudo \
&& sudo usermod --shell /bin/bash appuser
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER appuser
# Configure tzdata manually before anything else
ENV TZONE=Europe/Paris
RUN sudo ln -fs /usr/share/zoneinfo/$TZONE /etc/localtime \
&& sudo apt-get update && sudo apt-get -y install tzdata
# Base packages required
RUN sudo apt-get update && sudo apt-get -y install \
git \
vim \
wget \
maven \
openjdk-8-jdk
# Prepare buiid and install environment
RUN sudo mkdir /opt/build /opt/install \
&& sudo chown appuser:appuser /opt/build /opt/install
# swagger-codegen
FROM base as codegen_clone
ARG clone_label
WORKDIR /opt/build
RUN git clone --depth 1 https://github.com/f4exb/swagger-codegen.git -b sdrangel \
&& cd swagger-codegen \
&& mkdir build \
&& echo "${clone_label}" > build/clone_label.txt
FROM base as codegen_build
COPY --from=codegen_clone --chown=appuser /opt/build/swagger-codegen /opt/build/swagger-codegen
WORKDIR /opt/build/swagger-codegen
RUN export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \
&& mvn clean package
RUN mkdir -p /opt/install/swagger \
&& cp ./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar /opt/install/swagger
FROM base as codegen
RUN mkdir -p /opt/build/sdrangel/swagger/sdrangel
COPY --from=codegen_build --chown=appuser /opt/install/swagger /opt/install/swagger
COPY swagger-codegen /opt/install/swagger
WORKDIR /opt/build/sdrangel/swagger/sdrangel