No description
- PHP 51.7%
- TypeScript 26.5%
- Twig 10.3%
- Vue 9.6%
- JavaScript 1%
- Other 0.8%
The Dockerfile was outdated since it still referred to NodeJS 18. It now uses recommended procedures to install node environment and composer. To ease the use of the docker setup the project does not need to be checked out locally since that is now part of the image building process. The heuristic waiting time of 10 seconds inside of the entrypoint script got removed. The docker compose example file now contains a health check and a dependency to a healthy database service before the web service will be started. Therefore there is no need in estimated waiting times to reliably "ensure" the database is ready for connections. The resulting app image will now have `tiny` as an embedded binary. This enables signal handling when using the custom entrypoint script and allows proper compose down even in podman environments. |
||
|---|---|---|
| assets | ||
| bin | ||
| config | ||
| docker | ||
| migrations | ||
| public | ||
| src | ||
| templates | ||
| tests | ||
| translations | ||
| .env | ||
| .env.test | ||
| .gitignore | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.yaml | ||
| Dockerfile | ||
| LICENSE | ||
| package.json | ||
| phpstan.neon | ||
| phpunit.xml.dist | ||
| README.md | ||
| rector.php | ||
| symfony.lock | ||
| tsconfig.json | ||
| webpack.config.js | ||
| yarn.lock | ||
1 - Custom deployment
1.1 - runtime requirements
- php 8.1
1.2 - Installation instructions
- clone repository or choose a download from release page
- create .env.local file
APP_SECRET: set to a custom valueDATABASE_URL: set by using an example line from .env file
- run
composer install --no-dev - run
yarn install - run
npm run build - create and update the database by running
php bin/console doctrine:migrations:migrate - add at least two accounts by issuing
php bin/console app:account:create <accountname>
1.3 - Update/Upgrade instructions
- pull target version from the repository or download from release page
- run
composer install --no-devto refresh/create dependencies - run
yarn installto refresh/create node modules - run
npm run buildto refresh/create assets - update the database by running
php bin/console doctrine:migrations:migrate
2 - Docker deployment
2.1 - Installation instructions
- download
docker-compose.yaml.sampleandDockerfilefrom repository or copy them from an already downloaded release - rename
docker-compose.yaml.sampletodocker-compose.yamland changeAPP_VERSIONof the build section of the web service to valid release version - create .env.local file
APP_SECRET: set to a custom valueMYSQL_DATABASE: will be used to tell the mariadb service the name of the database which stores the dataMYSQL_PASSWORD: will be used by the app's user when connecting to the database serviceMYSQL_ROOT_PASSWORD: will NOT be used by the app but will be passed to the mariadb service to secure the root userMYSQL_USER: will be the app's user for database service connectionsMYSQL_VERSION: will be the version of the database service imageDATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@database:3306/${MYSQL_DATABASE}?serverVersion=${MYSQL_VERSION}-MariaDB": you can copy this line for docker setups since the dynamic values will be derived from the above environment vars
- run
docker-compose up -dto start the environment - wait a moment till all images are downloaded, built and the entrypoint script is done
- explanation: the entrypoint script of the dockerfile will do needed database creation/migration
- add at least two accounts by issuing
docker exec -it mymoney_web_1 php ./bin/console app:account:create <accountname>
2.2 - Update/Upgrade instructions
To trigger an upgrade to a newer release change the APP_VERSION in the build section of the web service and issue the following command docker-compose up -d --build.
The entrypoint script of the release does the needed build steps for updating the database. All required assets will be created when building the image from the targeted release. No further actions required.