FROM sapmachine:21-jre-headless-ubuntu ENV WORKDIR_PATH=/workspace ENV CONFIG_PATH=${WORKDIR_PATH}/config ENV DATA_PATH=${WORKDIR_PATH}/data ADD ./src ${CONFIG_PATH} RUN mkdir ${DATA_PATH} RUN mkdir ${DATA_PATH}/logs && \ ln -sf ${DATA_PATH}/logs ${CONFIG_PATH} VOLUME ${DATA_PATH} ENV MEMORY=4G ENV PROXY_SECRET=change_me ENV SERVERS=lobby="lobby:25565";survival="survival:25565" ENV TRY=lobby;survival ENV LUCKPERMS_DB_HOST=127.0.0.1 ENV LUCKPERMS_DB_PORT=3306 ENV LUCKPERMS_DB_NAME=luckperms ENV LUCKPERMS_DB_USERNAME=luckperms ENV LUCKPERMS_DB_PASSWORD=0000 WORKDIR ${WORKDIR_PATH}/config EXPOSE 25565/tcp # TODO: Make awk commands sapn multiple lines # TODO: Use one call to awk to perform substitutions CMD \ sed -i "s/_LUCKPERMS_DB_HOST_/${LUCKPERMS_DB_HOST}/g" plugins/luckperms/config.yml && \ sed -i "s/_LUCKPERMS_DB_PORT_/${LUCKPERMS_DB_PORT}/g" plugins/luckperms/config.yml && \ sed -i "s/_LUCKPERMS_DB_NAME_/${LUCKPERMS_DB_NAME}/g" plugins/luckperms/config.yml && \ sed -i "s/_LUCKPERMS_DB_USERNAME_/${LUCKPERMS_DB_USERNAME}/g" plugins/luckperms/config.yml && \ sed -i "s/_LUCKPERMS_DB_PASSWORD_/${LUCKPERMS_DB_PASSWORD}/g" plugins/luckperms/config.yml && \ # Add proxy secret sed -i "s/_PROXY_SECRET_/${PROXY_SECRET}/g" forwarding.secret && \ awk -v servers_str="${SERVERS}" '{ count=split(servers_str,servers_arr,";"); servers_fmt_str = ""; for (i = 1; i <= count; i++) servers_fmt_str = servers_fmt_str servers_arr[i] "\n"; sub(/_SERVERS_/,servers_fmt_str); print }' velocity.toml > velocity.toml.tmp && mv -T -f velocity.toml.tmp velocity.toml &&\ awk -v try_str="${TRY}" '{ count=split(try_str,try_arr,";"); try_fmt_str = ""; for (i = 1; i <= count; i++) try_fmt_str = try_fmt_str "\"" try_arr[i] "\"" ",\n "; sub(/_TRY_/,try_fmt_str); print }' velocity.toml > velocity.toml.tmp && mv -T -f velocity.toml.tmp velocity.toml && \ java -Xms${MEMORY} -Xmx${MEMORY} -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar *.jar