Coder Social home page Coder Social logo

zarumaru / vircadia-domain-server-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from misterblue/vircadia-domain-server-docker

0.0 0.0 0.0 48 KB

Docker version of Vircadia domain-server built with vircadia-builder

License: Apache License 2.0

Shell 100.00%

vircadia-domain-server-docker's Introduction

vircadia-domain-server-docker

Docker version of Vircadia domain-server built with vircadia-builder.

This repository includes files to build the Docker image (build*.sh) and run the Docker image (*-domain-server.sh).

The Dockerfile is broken into two halves to make building and debugging a little easier. buildBase.sh builds an image that contains all the required libraries and package (Qt, ...). buildDS.sh uses the base image to pull the Vircadia sources and just build Vircadia. This makes testing quicker as a new domain-server image build doesn't include all the library builds. So, you can build the base only once for each version of Qt and supporting libraries and then buildDS when you want to rebuild with a new version of Vircadia.

The build argument TAG specifies the GIT pull tag. This defaults to master.

The script pushDocker.sh pushes the image to my repository. Modify it to your purposes.

Thus, the steps to build are:

    ./buildBase.sh
    ./buildDS.sh
    ./pushDocker.sh

There are running scripts supplied that can be used when running the domain-server container. On the system the domain-server is to be run on, pull this repository and then run-domain-server.sh. This will pull the image from hub.docker.com and start the docker container.

The domain-server can be stopped with stop-domain-server.sh and an update/restart (stop container, pull new image, start container) is done with update-domain-server.sh.

The above run scripts generate local files saving the domain-server configuration, cache, and state. Domain-server files show up in server-dotlocal. There are several layers of sub-directories which are used if you are running multiple grids and multiple domain-server instances.

Log files for the running domain-server are found in the directory server-logs with sub-directories for the grids and instances.

By default, the domain-server will point to the metaverse-server https://metaverse.vircadia.com/live but this can be changed by passing the metaverse URL to the run script:

    ./run-domain-server.sh https://metaverse.example.com ice.example.com

run-domain-server.sh uses "--networking=host" because the assignment clients use ports all over the place. The assignment-clients need some taming on their port usage and some parameterization for running multiple domain-servers on one processor.

TODO: Break out all the assignment clients into separate containers running on the 'internal' virtual network. Use docker-compose or similar to start them all up and to do scaling for things like audio load, etc.

Ice Server

The Docker image also contains an ice-server which you can run if you are running your own grid (using your own metaverse-server, etc). The script run-ice-server.sh will run the ice server. It requires the URL of the metaverse-server.

Versioning

There is a special kludge to get the version of the built domain-server.

    docker run --rm --entrypoint /home/cadia/getVersion.sh misterblue/vircadia-domain-server

This runs the image and outputs JSON text giving the version the domain-server was built with:

   {
      "GIT_COMMIT": "GitCommitString",
      "GIT_COMMIT_SHORT": "FirstEightCharactersOfGitCommitString",
      "GIT_TAG": "GitBranchTag",
      "BUILD_DATE": "YYYYMMDD.HHMM",
      "BUILD_DAY": "YYYYMMDD"
      "VERSION_TAG": "TAG-YYYYMMDD-xxxxxxxx"
   }

vircadia-domain-server-docker's People

Contributors

misterblue avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.