Skip to content

getavalon/docker

Repository files navigation

WARNING: IN PROGRESS, DO NOT USE

Avalon on Docker

Avalon on Docker, ideal for beginners and studios alike.


Usage on Windows

Avalon consists of three components:

  1. Some files for integrating with Maya and friends
  2. A database for storing production data such as assets, shot lengths and more
  3. A production tracking system for visually managing assets, tasks and more

Each of these are served via Docker images.

With Docker available on your system, copy/paste the following commands into Docker Quickstart to start the Avalon components.

# From Docker Quickstart
docker run --name avalon-files -d --rm -p 445:445 avalon/files -s "Avalon;/avalon;yes;yes;yes;all;none;all" -u "avalon;default"
docker run --name avalon-database -d --rm -v avalon-database:/data/db -p 27017:27017 avalon/database
docker run --name avalon-tracker -d --rm -v avalon-tracker:/var/lib/postgresql -v avalon-tracker:/opt/zou/zou/thumbnails -p 80:80 avalon/tracker

Finally, from cmd.exe run the following to map Avalon files to a drive, such as A:\

:: From cmd.exe
net use /delete a:
net use a: \\192.168.99.100\avalon /user:avalon default

Now you are ready to create a project and populate it with assets.

  1. Double-click A:\terminal.bat
  2. Type avalon --help to ensure the installation was successful
  3. Go to Tutorials for more

Troubleshooting

Click on any of the below problems for potential causes and solutions.

1. The network name cannot be found
  • On Windows and OSX, find your IP via docker-machine ip
  • On Linux, exclude mapping of ports to the host and access the container IP directly
  • If you encounter The network name cannot be found ensure you run the above in cmd.exe and not Docker Quickstart, bash or MSYS2 etc.
2. Couldn't connect to mongodb
If you are having trouble running avalon due to not being able to connect with the database, odds are the Windows firewall is preventing the two from speaking.

Run the following snippet from a cmd.exe with administrator privileges.
netsh advfirewall firewall add rule name="Avalon Database" dir=in action=allow protocol=TCP localport=27017
    

Can't find your problem? Submit a bug report


Configuration

Change the username and password combination for A:\ by swapping -u "avalon;default" for a combination of your choice.

To stop all containers, run the following.

docker kill avalon-files avalon-database avalon-tracker

To remove all changes to Avalon and start anew, run the following command.

docker volume rm avalon-database avalon-tracker

Development

This repository contains all of Avalon as Git submodules. To extend Avalon, you typically edit each repository individually, and then point the submodules in this repository to your latest change.

git clone https://github.com/getavalon/docker.git --recursive
cd docker
docker build . -t avalon/files -f Dockerfile-files
docker build . -t avalon/database -f Dockerfile-database
docker build . -t avalon/tracker -f Dockerfile-tracker

To use your local copy of this repository for A:\, mount the repository into the files container.

docker kill avalon-files
docker run --name avalon-files -d --rm \
    -p 445:445 \
    -v $(pwd)/volume:/avalon \
    avalon/files \
    -s "Avalon;/avalon;yes;yes;yes;all;none;all" \
    -u "avalon;default"

See the Usage instructions, though you may want to remove -d and -ti so as to witness logs and more easily kill containers.

Override modules

When developing on individual repositories like Avalon-core or Avalon-launcher, it can be useful to have separate repositories for the submodules of Avalon-docker.
You can still utilize Avalon-docker for testing by using environment variables to override where Avalon-docker looks for the modules.

$ git clone https://github.com/getavalon/core.git avalon-core
$ set AVALON_PYTHONPATH=%cd%\avalon-core
$ # Launch Avalon, using this repo for the core
$ avalon

The available environment variables are:

Environment Variable Description Default
AVALON_MONGO Path to reach Mongo database. mongodb://localhost:27017 (Linux) / mongodb://192.168.99.100:27017 (Windows)
AVALON_DB Database name in Mongo. avalon
AVALON_PYTHONPATH Override dependency modules. Path of submodules.
AVALON_DEBUG Enable additional output. True
AVALON_CONFIG Which Avalon config to use. polly
AVALON_EXAMPLES Examples repository. Path of submodule.

Testing

From terminal.bat run nose like so.

python -m nose tests