32f0101c1b
Attempted fix of #18291 - update PHP versions and alpine versions
2026-01-05 14:05:47 +00:00
c6dea085b2
Missed a few
...
Signed-off-by: snipe <snipe@snipe.net >
2025-08-10 21:01:23 +01:00
4c59989236
Docker: harden updating of php.ini in entrypoint
...
The Docker entrypoint scripts set values for the `upload_max_filesize`
and `post_max_size` directives in `php.ini` based on the value of the
`PHP_UPLOAD_LIMIT` environment variable, subject to the following
restrictions:
* Exactly one file matches `/etc/php/*/apache2/php.ini` (on Ubuntu) or
`/etc/php*/php.ini` (on Alpine) - if, for example, more than one PHP
package is installed in the base image, `PHP_UPLOAD_LIMIT` will not be
honoured.
* The `php.ini` file already sets a non-default value for the
`upload_max_filesize` or `post_max_size` directives - this is
currently the case for the configurations inherited from upstream, but
is not guaranteed. If the default values are relied upon,
`PHP_UPLOAD_LIMIT` will silently not be honoured (although the script
output will claim that it is).
Iterate over the lines outputted by `file(1)` so `PHP_UPLOAD_LIMIT` is
honoured in all available `php.ini` files, and set `upload_max_filesize`
and `post_max_size` regardless of whether they already have a value set.
2025-06-10 13:39:46 +01:00
f44150668c
Merge pull request #17038 from amedranogil/develop
...
more robust php.ini update.
2025-06-02 15:27:28 +01:00
ed8da6ad1b
Docker: Ensure permissions on Laravel log file
...
FIXES: https://github.com/grokability/snipe-it/issues/12725
In some of our Docker startups, it was possible for the Laravel log file
to be created with root permissions, causing future errors when the
non-root webapp tries to write to it.
We'll now always chown (and create, if necessary) the log file to the proper
user after running any artisan commands (as root)
We _could_ run them as the proper user via su, but IMO not doing so keeps the
script easier to read, but I'm not married to the approach. I'd still
want to keep the chown command(s) in, because it will also fix the
permissions for anyone who already has this issue.
2025-05-29 17:45:14 -07:00
32bd14bd2d
more robust php.ini update.
...
could solve #10830 when setting PHP_UPLOAD_LIMIT environment variable in docker command and/or docker-compose.
2025-05-29 17:46:23 +02:00
51a306993c
fix: PHP_UPLOAD_LIMIT not set for PHP 8.3
2025-05-25 16:23:17 +02:00
9de97694c3
[FIX] set upload-limit
2025-05-05 08:35:45 +02:00
70e9c6b947
Update relevant snipe/snipe-it references to grokability/snipe-it in Docker files
2025-04-03 11:44:27 -07:00
0d7cf55a3a
Add support for Docker secrets in Standard and alpine image.
2024-08-14 17:40:52 +02:00
b65bf5082d
Fix #13515 : create directories expected by RestoreFromBackup.php
2024-03-06 15:11:41 -05:00
8ad5fb34d3
Fixed #11708 - pre-create private_storage directories for Docker restores
2022-08-24 17:11:21 -07:00
8324b94022
Change PHP post_max_size
...
Must change post_max_size in addition to upload_max_filesize to increase total upload size to greater than 8MB.
2022-08-11 17:07:46 -04:00
22313711d5
Fix ownership of cache directory
...
Snipe-IT was waiting to load because
/var/www/html/storage/framework/cache/ and its contet were owned by
root:root, but docker needed to be able to write to them
This change recursively chowns that path to docker:root, and now it
loads.
2021-10-01 16:54:17 -07:00
8f4b88a877
Fixes #9705 Prevent syntax error in startup.sh
...
If SESSION_DRIVER is not defined it leads to a syntax error.
2021-06-12 20:21:43 +02:00
c3d75d3be3
feat[docker]: create session table migration if session driver is set to database ( #9587 )
2021-05-20 14:31:22 -07:00
19766a0a72
Fix/startup-sh ( #9586 )
...
* fix: update docker/startup.sh broken after merging hotfixs/2fa_qr
* fix: Typo in Dockerfile.alpine
2021-05-17 15:39:05 -07:00
87464e6ec0
Merge branch 'develop' into integrations/2020-04-15-v5-merge
...
# Conflicts:
# README.md
# app/Http/Controllers/AccessoriesController.php
# app/Http/Controllers/Api/AssetsController.php
# app/Http/Controllers/Api/LicensesController.php
# app/Http/Controllers/Api/LocationsController.php
# app/Http/Controllers/Api/SettingsController.php
# app/Http/Controllers/Api/UsersController.php
# app/Http/Controllers/AssetModelsController.php
# app/Http/Controllers/Assets/AssetsController.php
# app/Http/Controllers/Auth/ForgotPasswordController.php
# app/Http/Controllers/CategoriesController.php
# app/Http/Controllers/CompaniesController.php
# app/Http/Controllers/ComponentsController.php
# app/Http/Controllers/ConsumablesController.php
# app/Http/Controllers/CustomFieldsetsController.php
# app/Http/Controllers/DepartmentsController.php
# app/Http/Controllers/LicensesController.php
# app/Http/Controllers/LocationsController.php
# app/Http/Controllers/ManufacturersController.php
# app/Http/Controllers/SettingsController.php
# app/Http/Controllers/SuppliersController.php
# app/Http/Controllers/UsersController.php
# app/Http/Requests/AssetRequest.php
# app/Http/Requests/ImageUploadRequest.php
# app/Models/LicenseSeat.php
# app/Models/Location.php
# app/Models/Setting.php
# composer.json
# composer.lock
# config/database.php
# config/version.php
# npm-shrinkwrap.json
# package.json
# public/css/AdminLTE.css
# public/css/AdminLTE.css.map
# public/css/overrides.css
# public/css/overrides.css.map
# public/css/skins/skin-blue-light.css
# public/css/skins/skin-blue.css
# public/css/skins/skin-green-dark.min.css
# public/js/app.js
# public/js/bootstrap-table.js
# public/js/bootstrap/js/bootstrap.js
# public/js/bootstrap/js/bootstrap.min.js
# public/js/build/all.js
# public/js/build/vue.js
# public/js/build/vue.js.map
# public/js/demo.js
# public/js/ekko-lightbox.js
# public/js/ekko-lightbox.min.js
# public/js/extensions/export/bootstrap-table-export.js
# public/js/extensions/multiple-sort/bootstrap-table-multiple-sort.js
# public/js/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js
# public/js/extensions/toolbar/bootstrap-table-toolbar.min.js
# public/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js
# public/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js
# public/js/plugins/timepicker/bootstrap-timepicker.js
# public/js/plugins/timepicker/bootstrap-timepicker.min.js
# public/js/vue.js
# public/mix-manifest.json
# resources/assets/js/bootstrap-js.js
# resources/assets/js/bootstrap.min.js
# resources/assets/js/ekko-lightbox.js
# resources/assets/js/ekko-lightbox.min.js
# resources/assets/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js
# resources/assets/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js
# resources/assets/js/plugins/chartjs/Chart.js
# resources/assets/js/plugins/timepicker/bootstrap-timepicker.js
# resources/assets/js/plugins/timepicker/bootstrap-timepicker.min.js
# resources/assets/less/AdminLTE.less
# resources/assets/less/overrides.less
# resources/assets/less/skins/_all-skins.less
# resources/assets/less/skins/skin-black.less
# resources/assets/less/skins/skin-blue.less
# resources/assets/less/skins/skin-green.less
# resources/assets/less/skins/skin-purple.less
# resources/assets/less/skins/skin-red.less
# resources/assets/less/skins/skin-yellow.less
# resources/assets/less/variables.less
# resources/js/components/importer/importer-file.vue
# resources/lang/en/auth/message.php
# resources/lang/en/passwords.php
# resources/lang/es-CO/general.php
# resources/lang/es-ES/general.php
# resources/lang/es-VE/general.php
# resources/less/skins/skin-black-dark.less
# resources/less/skins/skin-blue-dark.less
# resources/less/skins/skin-contrast.less
# resources/less/skins/skin-green-dark.less
# resources/less/skins/skin-orange-dark.less
# resources/less/skins/skin-orange.less
# resources/less/skins/skin-purple-dark.less
# resources/less/skins/skin-red-dark.less
# resources/less/skins/skin-yellow-dark.less
# resources/views/accessories/checkin.blade.php
# resources/views/accessories/checkout.blade.php
# resources/views/accessories/edit.blade.php
# resources/views/account/profile.blade.php
# resources/views/account/view-assets.blade.php
# resources/views/asset_maintenances/edit.blade.php
# resources/views/auth/passwords/email.blade.php
# resources/views/auth/passwords/reset.blade.php
# resources/views/categories/edit.blade.php
# resources/views/companies/edit.blade.php
# resources/views/components/checkin.blade.php
# resources/views/components/checkout.blade.php
# resources/views/components/edit.blade.php
# resources/views/consumables/checkout.blade.php
# resources/views/consumables/edit.blade.php
# resources/views/custom_fields/fields/edit.blade.php
# resources/views/custom_fields/fieldsets/edit.blade.php
# resources/views/dashboard.blade.php
# resources/views/departments/edit.blade.php
# resources/views/groups/edit.blade.php
# resources/views/hardware/audit.blade.php
# resources/views/hardware/bulk-checkout.blade.php
# resources/views/hardware/bulk.blade.php
# resources/views/hardware/checkin.blade.php
# resources/views/hardware/checkout.blade.php
# resources/views/hardware/edit.blade.php
# resources/views/hardware/index.blade.php
# resources/views/hardware/quickscan.blade.php
# resources/views/hardware/view.blade.php
# resources/views/importer/import.blade.php
# resources/views/layouts/basic.blade.php
# resources/views/layouts/default.blade.php
# resources/views/layouts/edit-form.blade.php
# resources/views/licenses/checkin.blade.php
# resources/views/licenses/checkout.blade.php
# resources/views/licenses/edit.blade.php
# resources/views/locations/edit.blade.php
# resources/views/manufacturers/edit.blade.php
# resources/views/modals/upload-file.blade.php
# resources/views/models/bulk-edit.blade.php
# resources/views/models/custom_fields_form.blade.php
# resources/views/models/edit.blade.php
# resources/views/partials/bootstrap-table.blade.php
# resources/views/partials/forms/edit/address.blade.php
# resources/views/partials/forms/edit/asset-select.blade.php
# resources/views/partials/forms/edit/category-select.blade.php
# resources/views/partials/forms/edit/category.blade.php
# resources/views/partials/forms/edit/company-select.blade.php
# resources/views/partials/forms/edit/company.blade.php
# resources/views/partials/forms/edit/department-select.blade.php
# resources/views/partials/forms/edit/depreciation.blade.php
# resources/views/partials/forms/edit/email.blade.php
# resources/views/partials/forms/edit/image-upload.blade.php
# resources/views/partials/forms/edit/item_number.blade.php
# resources/views/partials/forms/edit/location-profile-select.blade.php
# resources/views/partials/forms/edit/location-select.blade.php
# resources/views/partials/forms/edit/location.blade.php
# resources/views/partials/forms/edit/maintenance_type.blade.php
# resources/views/partials/forms/edit/manufacturer-select.blade.php
# resources/views/partials/forms/edit/manufacturer.blade.php
# resources/views/partials/forms/edit/minimum_quantity.blade.php
# resources/views/partials/forms/edit/model-select.blade.php
# resources/views/partials/forms/edit/model_number.blade.php
# resources/views/partials/forms/edit/name.blade.php
# resources/views/partials/forms/edit/notes.blade.php
# resources/views/partials/forms/edit/order_number.blade.php
# resources/views/partials/forms/edit/phone.blade.php
# resources/views/partials/forms/edit/purchase_cost.blade.php
# resources/views/partials/forms/edit/purchase_date.blade.php
# resources/views/partials/forms/edit/quantity.blade.php
# resources/views/partials/forms/edit/serial.blade.php
# resources/views/partials/forms/edit/status.blade.php
# resources/views/partials/forms/edit/submit.blade.php
# resources/views/partials/forms/edit/supplier-select.blade.php
# resources/views/partials/forms/edit/supplier.blade.php
# resources/views/partials/forms/edit/user-select.blade.php
# resources/views/reports/custom.blade.php
# resources/views/settings/alerts.blade.php
# resources/views/settings/asset_tags.blade.php
# resources/views/settings/barcodes.blade.php
# resources/views/settings/branding.blade.php
# resources/views/settings/general.blade.php
# resources/views/settings/labels.blade.php
# resources/views/settings/ldap.blade.php
# resources/views/settings/localization.blade.php
# resources/views/settings/security.blade.php
# resources/views/setup/user.blade.php
# resources/views/suppliers/edit.blade.php
# resources/views/users/bulk-edit.blade.php
# resources/views/users/edit.blade.php
# resources/views/users/ldap.blade.php
# resources/views/users/print.blade.php
# resources/views/users/view.blade.php
# routes/api.php
# routes/web/hardware.php
# webpack.mix.js
2020-04-20 23:20:34 -07:00
b14f37d966
Purposal for fix on issue 6251 - max upload filesize ( #7930 )
...
* Added a check and sed to startup.sh for managing max upload size inside the docker container. Issue encountered in 6251
* Changed startup.sh to bash instead of sh to have better variable control. Changed single ticks to double ticks for the sed so that the variable PHP_UPLOAD_LIMIT is expanded
2020-03-31 21:02:10 -07:00
bca82684a1
Merge branch 'hotfixes/2fa_qr' into develop
...
# Conflicts:
# .all-contributorsrc
# Dockerfile
# README.md
# app/Console/Commands/LdapSync.php
# app/Http/Controllers/Api/ImportController.php
# app/Http/Controllers/AssetModelsController.php
# app/Http/Controllers/Assets/AssetsController.php
# app/Http/Controllers/Auth/LoginController.php
# app/Http/Controllers/CategoriesController.php
# app/Http/Controllers/CompaniesController.php
# app/Http/Controllers/DepartmentsController.php
# app/Http/Controllers/ImportsController.php
# app/Http/Controllers/LocationsController.php
# app/Http/Controllers/ManufacturersController.php
# app/Http/Controllers/SuppliersController.php
# app/Http/Requests/ItemImportRequest.php
# app/Http/Transformers/ActionlogsTransformer.php
# composer.json
# composer.lock
# config/app.php
# config/version.php
# docker/startup.sh
# public/css/build/all.css
# public/css/dist/all.css
# public/js/build/all.js
# public/js/build/vue.js
# public/js/build/vue.js.map
# public/js/dist/all.js
# public/mix-manifest.json
2019-03-20 02:17:02 -07:00
e59ec8b27f
Run Laravel schedule in docker image using supervisord ( #6606 )
...
* docker: Rename /entrypoint.sh to /startup.sh
This script is not configured as the docker image ENTRYPOINT, thus it is
misleading to name it so.
* docker: Terminate supervisord if a process enters the FATAL state
By terminating PID 1, this will also terminate the Docker container.
* docker: Use supervisord to start up apache and cron
Note that this uses `apache2ctl -DFOREGROUND` rather than manually
sourcing /etc/apache2/envvars and running apache2, as recommended at
https://advancedweb.hu/2018/07/03/supervisor_docker/ .
* docker: Add artisan schedule:run to crontab
This also switches to executing /var/www/html/artisan directly.
* docker: Run artisan schedule:run directly from supervisor
This has the following benefits over using cron:
- Cron doesn't need to be installed
- Docker-provided environment variables are preserved
- It's easy and explicit to run as the docker user
2019-03-07 12:42:00 -08:00