nextcloud-docker-dev
nextcloud-docker-dev copied to clipboard
📝 Changelog
This issue will keep getting updates about changes that are relevant for developers using this setup or the images.
You can subscribe to it to get updates.
Updating to the latest version
git pullto get the latest changesmake pull-installedto pull the latest versions of all images that are already downloadedmake pull-allto pull the latest versions of all images- After pulling make sure to either recreate the containers manually or recreate the full development environment through
docker compose down -vanddocker compose up -d proxy nextcloud ...for the containers in use
Added
- 📦 The sysvsem PHP module is now included in the images as it was introduced as a recommendation in https://github.com/nextcloud/server/pull/18210
- 🐘 PHP 8.2.0 RC6 is available as a new image: nextcloud-dev-php82
- The blackfire module is still missing as it is not available yet
Breaking changes
- 🧩 Xdebug and Blackfire are disabled by default now. A script has been added to seamlessly switch between the different modes. The first argument represents the container name from docker-compose.yml:
- Enable xdebug for step debugging:
./scripts/php-mod-config nextcloud xdebug.mode debug - Enable xdebug for profiling:
./scripts/php-mod-config nextcloud xdebug.mode profile - Enable xdebug for tracing:
./scripts/php-mod-config nextcloud xdebug.mode trace - Disable xdebug:
./scripts/php-mod-config nextcloud xdebug.mode of - Enable blackfire
./scripts/php-mod-config nextcloud blackfire on - Disable blackfire
./scripts/php-mod-config nextcloud blackfire off
- Enable xdebug for step debugging:
- 🚚 The nextcloud-dev-php images are now also able to run in standalone mode.
This allows to spin up small development setups without the need for using the full docker-compose setup.
If no volume mounts are provided the server source code will be fetched from master or a provided git tag through
SERVER_BRANCH- Run a container for app development with the server master branch:
docker run --rm -p 8080:80 ghcr.io/juliushaertl/nextcloud-dev-php80:latest - Run a container for app development with the server stable version 24.0.1 branch:
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliushaertl/nextcloud-dev-php80:latest - Develop an app with a local source code:
docker run --rm -p 8080:80 -v ~/path/to/app:/var/www/html/apps-extra/app ghcr.io/juliushaertl/nextcloud-dev-php80:latest - For easier debugging you can also mount a local path for the server code (either an empty one or the path to your already checked out server codebase):
docker run --rm -p 8080:80 -v ~/path/to/server:/var/www/html ghcr.io/juliushaertl/nextcloud-dev-php80:latest
- Run a container for app development with the server master branch:
- 📦 The following tools have been added to the php images to ease development for users that don't have those installed locally:
- composer in the latest release available during image build
- PHPUnit is available in two versions:
phpunit8andphpunit9 - nvm for managing Node.js versions with the following preinstalled ones:
- Node.js 14 and npm 7
- Node.js 16 and npm 8
- 🔧 Fresh development environment setups will automatically install and enable the hmr_enabler app to ease frontend development with hot module reloading. (thanks to @christianlupus for the contribution)
- Existing installations can make use of this by cloning the app manually to their workspace app directory and make sure the app id is listed in the
.envfile in the list ofNEXTCLOUD_AUTOINSTALL_APPS
- Existing installations can make use of this by cloning the app manually to their workspace app directory and make sure the app id is listed in the
- 📦 The gmp extension has been added to the php images (thanks to @st3iny for the contribution)
- 📦 The
ADDITIONAL_APPS_PATHis now providing a shared mount to all Nextcloud containers. It can be used to have one git checkout of apps that support multiple Nextcloud releases. The default location isdata/apps-extra.- ⚠️ For existing installations: Make sure that
ADDITIONAL_APPS_PATHis properly set to a path that only contains app checkouts that should be shared across multiple stable versions or remove it from your existing.envfile to use the default location.
- ⚠️ For existing installations: Make sure that
- ✨ New stable27 container has been added for the Nextcloud 27 stable branch
- To setup your stable environment the usual steps can be followed that are described in the readme for running different stable versions
- 🚚 The standalone container are now able to work with GitHub code spaces. An example to integrate this into an app repository for easier contribution can be found at https://github.com/nextcloud/deck/pull/4683
- 🐛 Apps that are not possible to be enabled during installation will no longer block the setup forever #189
- 🐛 The environment variable for changing the XDebug mode has been changed to
PHP_XDEBUG_MODEto make sure that the configuration can be changed dynamically again using the script./scripts/php-mod-config nextcloud xdebug.mode debug. Make sure to adjust your .env file accordingly. (#136) - 🐘 PostgreSQL auto installation works again for stable26 and up (#161)
- 🔒
PROTOCOLenvironment variable was added to more easily check and autoconfigure if https is used or not. Make sure to update your.envfile to includePROTOCOL=httpsif you are using SSL/TLS on your dev setup (#214)