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/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.
- Double-click
A:\terminal.bat
- Type
avalon --help
to 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 found
ensure you run the above incmd.exe
and notDocker Quickstart
,bash
orMSYS2
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
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
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.
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. |
From terminal.bat
run nose like so.
python -m nose tests