forked from Misterblue/vircadia-domain-server-docker
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
602 additions
and
58 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
{ | ||
"metaverse": { | ||
"metaverse-name": "TestMetaverse", | ||
"metaverse-nick-name": "TestMetaverse", | ||
"metaverse-server-url": "vircadia-metaverse:9400", | ||
"default-ice-server-url": "vircadia-ice-server:7337" | ||
}, | ||
"database": { | ||
"db": "domainstore", | ||
"db-host": "vircadia-mongodb", | ||
"db-user": "cadiauser", | ||
"db-pw": "noneknowsit" | ||
}, | ||
"debug": { | ||
"loglevel": "debug" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,118 @@ | ||
FROM mongo:4.4 | ||
# Majority of the script is from https://github.com/docker-library/mongo | ||
# Adding vircadia related stuffs. | ||
|
||
ADD add_db_users.js /tmp/add_db_users.js | ||
FROM ubuntu:20.04 | ||
|
||
RUN mongod --fork --logpath /var/log/mongodb_init.log \ | ||
&& sleep 5 \ | ||
&& mongo admin /tmp/add_db_users.js | ||
# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added | ||
RUN groupadd -r mongodb && useradd -r -g mongodb mongodb | ||
|
||
RUN mongod --fork --logpath /var/log/mongodb_init.log \ | ||
&& sleep 5 \ | ||
&& mongo --eval "db.disableFreeMonitoring()" | ||
RUN set -eux; \ | ||
apt-get update; \ | ||
apt-get install -y --no-install-recommends \ | ||
ca-certificates \ | ||
jq \ | ||
numactl \ | ||
; \ | ||
if ! command -v ps > /dev/null; then \ | ||
apt-get install -y --no-install-recommends procps; \ | ||
fi; \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# RUN echo "noneknowsit:\n\tauthorization: enabled" >> /etc/mongod.conf | ||
# grab gosu for easy step-down from root (https://github.com/tianon/gosu/releases) | ||
ENV GOSU_VERSION 1.12 | ||
# grab "js-yaml" for parsing mongod's YAML config files (https://github.com/nodeca/js-yaml/releases) | ||
ENV JSYAML_VERSION 3.13.1 | ||
|
||
# Without the following line, docker-compose will fail with exit code 14. | ||
# RUN chown -R mongodb:mongodb /var/lib/mongodb | ||
RUN chown mongodb:mongodb /tmp/mongodb-27017.sock | ||
RUN set -ex; \ | ||
\ | ||
savedAptMark="$(apt-mark showmanual)"; \ | ||
apt-get update; \ | ||
apt-get install -y --no-install-recommends \ | ||
wget \ | ||
; \ | ||
if ! command -v gpg > /dev/null; then \ | ||
apt-get install -y --no-install-recommends gnupg dirmngr; \ | ||
savedAptMark="$savedAptMark gnupg dirmngr"; \ | ||
elif gpg --version | grep -q '^gpg (GnuPG) 1\.'; then \ | ||
# "This package provides support for HKPS keyservers." (GnuPG 1.x only) | ||
apt-get install -y --no-install-recommends gnupg-curl; \ | ||
fi; \ | ||
rm -rf /var/lib/apt/lists/*; \ | ||
\ | ||
dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ | ||
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ | ||
wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ | ||
export GNUPGHOME="$(mktemp -d)"; \ | ||
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \ | ||
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ | ||
command -v gpgconf && gpgconf --kill all || :; \ | ||
rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \ | ||
\ | ||
wget -O /js-yaml.js "https://github.com/nodeca/js-yaml/raw/${JSYAML_VERSION}/dist/js-yaml.js"; \ | ||
# TODO some sort of download verification here | ||
\ | ||
apt-mark auto '.*' > /dev/null; \ | ||
apt-mark manual $savedAptMark > /dev/null; \ | ||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ | ||
\ | ||
# smoke test | ||
chmod +x /usr/local/bin/gosu; \ | ||
gosu --version; \ | ||
gosu nobody true | ||
|
||
RUN mkdir /docker-entrypoint-initdb.d | ||
|
||
RUN set -ex; \ | ||
export GNUPGHOME="$(mktemp -d)"; \ | ||
set -- '20691EEC35216C63CAF66CE1656408E390CFB1F5'; \ | ||
for key; do \ | ||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \ | ||
done; \ | ||
gpg --batch --export "$@" > /etc/apt/trusted.gpg.d/mongodb.gpg; \ | ||
command -v gpgconf && gpgconf --kill all || :; \ | ||
rm -r "$GNUPGHOME"; \ | ||
apt-key list | ||
|
||
# Allow build-time overrides (eg. to build image with MongoDB Enterprise version) | ||
# Options for MONGO_PACKAGE: mongodb-org OR mongodb-enterprise | ||
# Options for MONGO_REPO: repo.mongodb.org OR repo.mongodb.com | ||
# Example: docker build --build-arg MONGO_PACKAGE=mongodb-enterprise --build-arg MONGO_REPO=repo.mongodb.com . | ||
ARG MONGO_PACKAGE=mongodb-org | ||
ARG MONGO_REPO=repo.mongodb.org | ||
ENV MONGO_PACKAGE=${MONGO_PACKAGE} MONGO_REPO=${MONGO_REPO} | ||
|
||
ENV MONGO_MAJOR 4.4 | ||
RUN echo "deb http://$MONGO_REPO/apt/ubuntu focal/${MONGO_PACKAGE%-unstable}/$MONGO_MAJOR multiverse" | tee "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list" | ||
|
||
# http://docs.mongodb.org/master/release-notes/4.4/ | ||
ENV MONGO_VERSION 4.4.11 | ||
# 12/28/2021, https://github.com/mongodb/mongo/tree/b7530cacde8432d2f22ed506f258ff9c3b45c5e9 | ||
|
||
RUN set -x \ | ||
# installing "mongodb-enterprise" pulls in "tzdata" which prompts for input | ||
&& export DEBIAN_FRONTEND=noninteractive \ | ||
&& apt-get update \ | ||
# starting with MongoDB 4.3 (and backported to 4.0 and 4.2 *and* 3.6??), the postinst for server includes an unconditional "systemctl daemon-reload" (and we don't have anything for "systemctl" to talk to leading to dbus errors and failed package installs) | ||
&& ln -s /bin/true /usr/local/bin/systemctl \ | ||
&& apt-get install -y \ | ||
${MONGO_PACKAGE}=$MONGO_VERSION \ | ||
${MONGO_PACKAGE}-server=$MONGO_VERSION \ | ||
${MONGO_PACKAGE}-shell=$MONGO_VERSION \ | ||
${MONGO_PACKAGE}-mongos=$MONGO_VERSION \ | ||
${MONGO_PACKAGE}-tools=$MONGO_VERSION \ | ||
&& rm -f /usr/local/bin/systemctl \ | ||
&& rm -rf /var/lib/apt/lists/* \ | ||
&& rm -rf /var/lib/mongodb \ | ||
&& mv /etc/mongod.conf /etc/mongod.conf.orig | ||
|
||
RUN mkdir -p /data/db /data/configdb \ | ||
&& chown -R mongodb:mongodb /data/db /data/configdb | ||
VOLUME /data/db /data/configdb | ||
|
||
COPY add_db_users.js /docker-entrypoint-initdb.d/ | ||
COPY docker-entrypoint.sh /usr/local/bin/ | ||
COPY config/mongod.conf /opt/mongod.conf | ||
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | ||
|
||
EXPOSE 27017 | ||
CMD ["mongod", "-f", "/opt/mongod.conf"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,3 @@ | ||
docker build -t vircadia-mongodb:4.4 -f Dockerfile . | ||
#!/bin/bash | ||
|
||
docker build -t vircadia-mongodb:4.4 . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# mongod.conf | ||
|
||
# for documentation of all options, see: | ||
# http://docs.mongodb.org/manual/reference/configuration-options/ | ||
|
||
# Where and how to store data. | ||
storage: | ||
dbPath: /data/db | ||
journal: | ||
enabled: true | ||
# engine: | ||
# mmapv1: | ||
# wiredTiger: | ||
|
||
# where to write logging data. | ||
systemLog: | ||
destination: file | ||
logAppend: true | ||
path: /var/log/mongodb/mongod.log | ||
|
||
# network interfaces | ||
net: | ||
port: 27017 | ||
bindIp: 127.0.0.1 | ||
|
||
# how the process runs | ||
processManagement: | ||
timeZoneInfo: /usr/share/zoneinfo | ||
|
||
security: | ||
authorization: enabled | ||
|
||
#operationProfiling: | ||
|
||
#replication: | ||
|
||
#sharding: | ||
|
||
## Enterprise-Only Options: | ||
|
||
#auditLog: | ||
|
||
#snmp: |
Oops, something went wrong.