Avalon on Docker, ideal for beginners and studios alike.
Avalon consists of three components:
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.
A:\terminal.bat
avalon --help
to ensure the installation was successfulClick on any of the below problems for potential causes and solutions.
docker-machine ip
The network name cannot be found
ensure you run the above in cmd.exe
and not Docker Quickstart
, bash
or MSYS2
etc.avalon
due to not being able to connect with the database, odds are the Windows firewall is preventing the two from speaking.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