# add build arguments for specific architectures ARG TARGETPLATFORM # using alpine FROM alpine:edge # unzip required for unpacking Corrade and all the rest are libraries RUN apk add --no-cache bash unzip curl icu-libs gcompat fontconfig ttf-dejavu libstdc++ dotnet9-runtime # retrieve latest Corrade RUN mkdir -p /tmo/kitchen WORKDIR /tmp/kitchen ARG TARGETOS ARG TARGETARCH RUN curl \ --retry 5 --max-time 120 --retry-delay 10 --retry-max-time 120 --retry-all-errors --retry-connrefused \ -fsSL "https://corrade.grimore.org/download/corrade/${TARGETOS}-${TARGETARCH}/LATEST.zip" -o /tmp/kitchen/Corrade.zip && \ unzip /tmp/kitchen/Corrade.zip -d /opt/corrade # cleanup WORKDIR /opt/corrade RUN rm -rf /tmp/kitchen # remove unneeded RUN apk del -r unzip curl # add filesystem requirements ADD rootfs / # expose just the Nucleus port, all the rest is up to the user EXPOSE 54377 # HTTP, MQTT, TCP, UDP and WebSockets are not exposed but the user can map the port if they wish # EXPOSE 8080 1883 8085 8086 8088 # Corrade volumes storing configuration VOLUME /etc/corrade # execute the bootstrapper that will start Corrade ENTRYPOINT ["bash", "/usr/local/bin/run"] # metadata labels LABEL \ org.opencontainers.image.vendor="Corrade" \ org.opencontainers.image.authors="Wizardry and Steamworks " \ org.opencontainers.image.title="Official Corrade Docker Container Image" \ org.opencontainers.image.description="the libOpenMetaverse scripted agent" \ org.opencontainers.image.version="latest" \ org.opencontainers.image.url="https://corrade.grimore.org/" \ org.opencontainers.image.licenses="MIT"