Avalon on Docker, ideal for beginners and studios alike.
Avalon consists of three components:
- Some files for integrating with Maya and friends
- A database for storing production data such as assets, shot lengths and more
- 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/trackerFinally, 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 defaultNow you are ready to create a project and populate it with assets.
- Double-click
A:\terminal.bat - Type
avalon --helpto ensure the installation was successful - Go to Tutorials for more
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 foundensure you run the above incmd.exeand notDocker Quickstart,bashorMSYS2etc.
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
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-trackerTo remove all changes to Avalon and start anew, run the following command.
docker volume rm avalon-database avalon-trackerThis 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-trackerTo 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.
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
$ avalonThe 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. |
From terminal.bat run nose like so.
python -m nose tests