# Updating local environment The following commands will update your local farmOS development environment. This approach avoids running `composer` commands because that is already done when the Docker image is built. **Warning**: This will replace everything except the `profiles` and `sites` directories. If you are developing farmOS core, this will ensure that your farmOS Git repository (inside `profiles/farm`) will not be touched. If you are developing a custom module, make sure that it is in `sites/all/modules`, otherwise it will be deleted. ``` # Run these commands from the local directory that contains docker-compose.yml. # The Docker containers should be running. # Backup www volume, just in case. sudo tar -czf www.tar.gz www # Pull latest 3.x-dev Docker image. docker pull farmos/farmos:3.x-dev # Move directories. mv www/web/profiles ./profiles mv www/web/sites ./sites # Update codebase. docker compose down rm -r www docker compose up -d # Restore directories. sudo rm -rf www/web/profiles www/web/sites mv ./profiles www/web/profiles mv ./sites www/web/sites # Update farmOS profile. cd www/web/profiles/farm git checkout 3.x && git pull origin 3.x # Run Drupal database updates. docker compose exec -u www-data www drush updb ```