When using a DevContainer, the opam
packages and database files are mounted as volumes into the DevContainer.
.devcontainer/data/db-root/
: development mariadb data (root).devcontainer/data/db-tenant/
: development mariadb data (tenants)- Docker volume
opam
: opam packages - Docker volume
build
: cached build directory to speed up development
This project is setup to run in a DevContainer. Ensure requirements to run in a DevContainer:
- Git installed
- Source Tree for GitLab setup (see Install user interface and Configure GitLab for Source Tree)
- Docker installed
- Visual Studio Code (VS Code) installed
- VS Code Extension Remote Container installed
- Set environment variable
ECON_SMTP_APP_PASSWORD
to our SMTP account password (see 1Password) on your local machine.
Your SSH folder and Git config gets mapped to the container. You should be able to use SSH and Git inside the
container. Please ensure ~/.gitconfig
doesn't contain absolute paths (you may use the ~
profile prefix, i.e.
excludesfile = ~/.gitignore_global
). Please note: You probably have to update Sourcetree settings. In its
settings "General" tab uncheck "Allow Sourcetree to modify your global Mercurial and Git configuration files".
Click on the icon similar to "><" in the bottom left corner and select Remote-Containers: Reopen in Container
.
If any changes were made to files in .devcontainer
folder the Container should be rebuilt (Remote-Containers: Rebuild Container
)
NOTE: When the setup is fully installed, select
View
->Command Palette...
and run the commandOCaml: Restart Language Server
- The Makefile used in the DevContainer is located in the
.devcontainer
folder - Ports from outside (e.g. localhost)
- webserver
- root
3016
- tenant
3017
- root
- database
- root
3316
- tenant
3317
- root
- webserver
- Create a
.env.test
file - Add the following variables to it
DATABASE_URL=mariadb://root@database-root:3306/test
MYSQL_DATABASE=test_econ
- Run migrations and seeds for the test databases
make test-migrate
- Run
make test
There is an Adminer
container added to the development package. To be able to use it, follow these few steps:
- Uncomment its line in the
.devcontainer/devcontainer.json
underrunServices
- Use
Remote-Containers: Rebuild Container
that it will also create and startup theAdminer
container - Open your web browser and open
localhost:8080