This is a Docker build for the Corrade scripted agent. There exists an official container of Corrade that is online on the Docker HUB.
.
├── Dockerfile
└── rootfs
└── usr
└── local
└── bin
└── run
5 directories, 2 files
# 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 <wizardry.steamworks@outlook.com>" \
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"
Here are the files associated with this Corrade build.
#!/usr/bin/bash
# create a directory that will be mountable as a regular Docker volume
mkdir -p /etc/corrade
# now pivot user-editable files as a symlink into the Docker mountable volume directory
if [ ! -f /etc/corrade/CorradeConfiguration.xml ]; then
cp /opt/corrade/CorradeConfiguration.xml.default /etc/corrade/CorradeConfiguration.xml
fi
ln -sf /etc/corrade/CorradeConfiguration.xml /opt/corrade/CorradeConfiguration.xml
if [ ! -f /etc/corrade/NucleusConfiguration.xml ]; then
cp /opt/corrade/NucleusConfiguration.xml.default /etc/corrade/NucleusConfiguration.xml
fi
ln -sf /etc/corrade/NucleusConfiguration.xml /opt/corrade/NucleusConfiguration.xml
if [ ! -f /etc/corrade/Log4Net.config ]; then
cp /opt/corrade/Log4Net.config.default /etc/corrade/Log4Net.config
fi
ln -sf /etc/corrade/Log4Net.config /opt/corrade/Log4Net.config
# DEBUG
#LD_PRELOAD=/lib/libgcompat.so ldd /opt/corrade/Corrade
#ls -l /opt/corrade/
/opt/corrade/Corrade
For the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.