FROM busybox:latest AS build
ARG VERSION
RUN wget https://github.com/wildfly/wildfly/releases/download/${VERSION}.Final/wildfly-${VERSION}.Final.tar.gz
RUN echo "   -> Removing unneeded .bat and .ps1 files..." &&\
    rm -f "wildfly-${VERSION}.Final/bin/"*.{bat,ps1} &&\
    echo "   -> Unpacking the package files..." &&\
    install -d -m 755 "/opt/" &&\
    tar -xf wildfly-${VERSION}.Final.tar.gz &&\
    cp -R "wildfly-${VERSION}.Final" "/opt/wildfly" &&\
    rm /opt/wildfly/bin/standalone.conf &&\
    cd "wildfly-${VERSION}.Final/docs/contrib/scripts/systemd" &&\
    echo "   -> Creating wildfly.conf (environment settings)..." &&\
    install -D -t "/opt/wildfly/etc/wildfly" -m 644 wildfly.conf &&\
    echo "   -> Copying launch.sh to the bin directory..." &&\
    install -D -t "/opt/wildfly/bin" -m 755 launch.sh &&\
    chmod -R u=rwX,g=rwX,o=rX "/opt/wildfly"

FROM archlinux:latest AS release
RUN pacman-key --init
RUN pacman-key --refresh-keys
RUN curl --retry 3 -OJ https://gitea.woggioni.net/api/packages/woggioni/arch/repository.key
RUN pacman-key --add repository.key
RUN pacman-key --lsign-key 0D28BF66FDB45D18D8EBEE5D4C91DADCD00B3F77

RUN --mount=type=bind,source=pacman-gitea-repository.conf,target=pacman-gitea-repository.conf cat pacman-gitea-repository.conf  >> /etc/pacman.conf
RUN --mount=type=cache,target=/var/cache/pacman pacman -Syu --noconfirm
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm jre21-openjdk
RUN useradd wildfly -u 1000 --system -s /bin/sh -d /opt/wildfly
COPY --from=build /opt/wildfly /opt/wildfly
RUN install -d -m 755 -o wildfly /opt/wildfly/standalone/log
RUN install -d -m 755 -o wildfly /opt/wildfly/standalone/data
RUN install -d -m 755 -o wildfly /opt/wildfly/standalone/tmp
RUN install -d -m 755 -o wildfly /opt/wildfly/standalone/deployments
RUN chown -R wildfly /opt/wildfly/standalone/configuration
VOLUME ["/opt/wildfly/standalone/tmp", "/opt/wildfly/standalone/data", "/opt/wildfly/standalone/log"]
USER wildfly
WORKDIR /opt/wildfly
ENV LAUNCH_JBOSS_IN_BACKGROUND=true
EXPOSE 8080/tcp
EXPOSE 9990/tcp
ENTRYPOINT ["/opt/wildfly/bin/standalone.sh", "-c", "standalone.xml", "-b", "0.0.0.0"]
