Laravel
Docker
Penyebab error permission denied saat menjalankan laravel app yang di dockerize adalah user yg execute proses composer install adalah root user. Usahakan setup non root user yaitu www-data di container php-fpm. Berikut contoh dockerfilenya.
FROM php:7.3-fpmCOPY composer.lock composer.json /usr/web/WORKDIR /usr/webRUN set -xe \&& DEP_BUILD="\git \build-essential \automake \bison \flex \libtool \unzip \re2c" \&& apt update && apt update \&& apt install -y $DEP_BUILD --no-install-recommends --no-install-suggests \&& mkdir -p /tmp/sdk \&& mkdir -p /opt/sqlanywhere16 \&& cd /tmp \&& curl -fSL https://s3.amazonaws.com/sqlanywhere/drivers/php/sasql_php.zip -o ./sdk/sasql_php.zip \&& git clone --depth 1 https://github.com/cbsan/sdk-sqlanywhere-php.git dep_sdk \&& cp -r ./dep_sdk/dep_lib/* /opt/sqlanywhere16 \&& cd ./sdk \&& unzip sasql_php.zip \&& phpize \&& ./configure --with-sqlanywhere \&& make \&& make install \&& docker-php-ext-enable sqlanywhere \&& ln -sF /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini \&& sed -i "s/;date.timezone =.*/date.timezone = America\/Sao_Paulo/" /usr/local/etc/php/php.ini \&& rm -rf /tmp/* \&& echo "/opt/sqlanywhere16/lib64" >> /etc/ld.so.conf.d/sqlanywhere16.conf \&& ldconfig \&& cd / && ln -sF /opt/sqlanywhere16/dblgen16.res dblgen16.res#Get ComposerRUN curl -o /tmp/composer-setup.php https://getcomposer.org/installer \&& curl -o /tmp/composer-setup.sig https://composer.github.io/installer.sig \# Make sure we're installing what we think we're installing!&& php -r "if (hash('SHA384', file_get_contents('/tmp/composer-setup.php')) !== trim(file_get_contents('/tmp/composer-setup.sig'))) { unlink('/tmp/composer-setup.php'); echo 'Invalid installer' . PHP_EOL; exit(1); }" \&& php /tmp/composer-setup.php --no-ansi --install-dir=/usr/local/bin --filename=composer --snapshot \&& rm -f /tmp/composer-setup.*RUN usermod -u 1000 www-dataCOPY --chown=www-data:www-data . /usr/webUSER www-data
Installing Laravel valet
when trying to install laravel valet but this error occur
[Composer\Downloader\TransportException]Content-Length mismatch, received 44537 bytes out of the expected 298454
solve by execute these commands
composer config -g repo.packagist composer https://packagist.orgcomposer config -g github-protocols https ssh
https://stackoverflow.com/questions/38635257/composer-content-length-mismatch
/usr/local/opt/mysql@6.7/bin/mysql.server start
Packages
- Enum
- GraphQL
- Auditing
- Blade Icons
- Web Tinker
- Activity Log
- Model Status
- Laravel CORS
- Media Library
- Laravel DOMPDF
- Laravel Schematics
- Tailwindcss Spinner
- Laravel Query Monitor
- Fjord is an admin-panel for Laravel
- Lyra is an administration panel for Laravel
Links
- Real world Laravel
- Laravel best practices
- 1 Persen lebih baik dengan Laravel
- Implementation of the Manager pattern existing in Laravel framework
- Multitenancy in Laravel: Migrations, Testing, and switching tenants
#php #laravel #docker #framework #backend