Make sure the following packages are all installed successfully before attempting to move forward.
Dependencies and prequisites in this repository are detailed for OSX development.
Both Dockerfile and Docker-Compose files can be used cross-platform.
Place your version of AEM in the /aem directory along with the license. If you intend on implementing automated builds with your github repository for your project, you'll need to move the CQ jar and license files to somewhere that Dockerhub can access it. This repository uses signed urls with AWS S3 + Cloudfront. Dockerhub does not support LFS.
This repository utilizes VirtualBox and the VirtualBox filesystem (vboxsf). If volume speed is an issue, it is suggested that repositories like Dinghy are looked at for off the shelf NFS functionality.
https://www.virtualbox.org/wiki/Downloads
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install caskroom/cask/brew-cask
brew cask install dockertoolbox
These instructions are aimed to ease the process in mounting the site repository to the docker container at run-time.
This step only needs to be ran once. This step controls how much memory is allocated to the docker-machine. The memory allocation can be modified in the file below.
./scripts/virtualbox.sh
Checkout any CVS branch/tag into the site directory within this repository. You will need to navigate to any SVN directory within the Docker container in order to build with Maven. It is advised if using Git to use Submodules.
Run this step every time your docker-machine is stopped or restarted. Boot2Docker ssh password is tcuser.
./scripts/volume.sh
docker-machine start $(basename `pwd`)
eval $(docker-machine env $(basename `pwd`))
Run this step to pull a fresh image from the Dockerhub repository.
docker pull deutsch/vw-aem:latest
docker-compose -f distribution/osx/latest.yaml up
Retrieve the IP address for AEM. View AEM in the browser with the IP given via the command below and your correct AEM port (e.g. 4502)
docker-machine ip $(basename `pwd`)
docker exec -it <organization>/vw-aem bash
cd /var/www/site/<CVS Branch>
mvn clean install -Pauto-deploy-all
Time can be saved by building your local environment with the scripts located within the scripts directory in this repository. These scripts assure that the code repository is mounted and available within the docker container through vboxsf.
The volume is mounted with uid=1000 which allows both read and write access from within the docker container through the host virtualbox installation created with docker-machine.
Make sure that both the CQ jar and license reside in the aem directory before running.
docker build -t <local tag name> .
docker run -v /docker-aem:/var/www/site --name author -p 4502:4502 <local tag name>
docker-compose -f distribution/osx/local.yaml up
docker exec -it <local tag name> bash
The grunt task is designed to insert signed urls into the Dockerfile for both the CQ jar and license files in the event of linking automated builds with Dockerhub to your Github repo.
brew install nvm
nvm use
grunt upload
grunt signuri