forked from Chill-project/chill-skeleton-basic
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| FROM php:8.2-fpm-alpine AS chill_base_php82
 | |
| 
 | |
| ENV POSTGRES_VERSION 14
 | |
| 
 | |
| # default UID for the PHP user
 | |
| ARG UID=1000
 | |
| ARG GID=1000
 | |
| 
 | |
| # install php extensions and deps
 | |
| RUN apk update && apk add --no-cache \
 | |
|     wget gnupg \
 | |
|     libpq-dev \
 | |
|     icu-dev icu-libs icu-data-full \
 | |
|     oniguruma-dev \
 | |
|     libzip libzip-dev \
 | |
|     linux-headers \
 | |
|     gcc g++ make autoconf \
 | |
|     bash git \
 | |
|     && docker-php-ext-install pdo_pgsql intl mbstring zip bcmath exif sockets \
 | |
|     && git clone https://github.com/nikic/php-ast.git \
 | |
|     && cd php-ast \
 | |
|     && phpize \
 | |
|     && ./configure \
 | |
|     && make install \
 | |
|     && echo 'extension=ast.so' > /usr/local/etc/php/php.ini \
 | |
|     && cd .. && rm -rf php-ast \
 | |
|     && pecl install redis \
 | |
|     && docker-php-ext-enable redis \
 | |
|     && apk add libpng-dev libjpeg-turbo-dev freetype-dev \
 | |
|     && docker-php-ext-configure gd --with-freetype --with-jpeg \
 | |
|     && docker-php-ext-install -j$(nproc) gd \
 | |
|     && apk add postgresql${POSTGRES_VERSION}-client \
 | |
|     && apk del --purge wget gnupg libpq-dev icu-dev oniguruma-dev libzip-dev linux-headers gcc g++ make autoconf
 | |
| 
 | |
| RUN { \
 | |
|     echo ""; \
 | |
|     echo "memory_limit = 512M"; \
 | |
|     echo ""; \
 | |
|     } >> /usr/local/etc/php/conf.d/memory_limit.ini
 | |
| 
 | |
| RUN { \
 | |
|     echo ""; \
 | |
|     echo "[Date]"; \
 | |
|     echo "date.timezone = Europe/Brussels"; \
 | |
|     echo ""; \
 | |
|     } >> /usr/local/etc/php/conf.d/date.ini
 | |
| 
 | |
| # temporary fix, while php-cs-fixer has conflict dependencies
 | |
| # with chill
 | |
| RUN curl -o /usr/local/bin/php-cs-fixer https://cs.symfony.com/download/php-cs-fixer-v3.phar \
 | |
|     && chmod +x /usr/local/bin/php-cs-fixer
 | |
| # to make php-cs-fixer works with php 8.2
 | |
| ENV PHP_CS_FIXER_IGNORE_ENV=1
 | |
| 
 | |
| COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
 | |
| ENV COMPOSER_ALLOW_SUPERUSER=1
 | |
| ENV COMPOSER_MEMORY_LIMIT=-1
 | |
| 
 | |
| # shell bash preference
 | |
| RUN sed -i " \
 | |
|     s|root:x:0:0:root:/root:/bin/ash|root:x:0:0:root:/root:/bin/bash|g; \
 | |
|     s|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/sh|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/bash|g" \
 | |
|     /etc/passwd
 | |
| 
 | |
| # chmod on redis.so
 | |
| RUN chmod 755 -R /usr/local/lib/php/extensions/
 | |
| 
 | |
| WORKDIR /var/www/app
 | |
| 
 | |
| CMD ["php-fpm"]
 | |
| 
 | |
| FROM chill_base_php82 AS chill_php82
 | |
| 
 | |
| # copy directories
 | |
| 
 | |
| COPY ./bin    /var/www/app/bin/.
 | |
| COPY ./composer.* /var/www/app/
 | |
| COPY ./config    /var/www/app/config/.
 | |
| COPY ./migrations /var/www/app/migrations/.
 | |
| COPY ./public    /var/www/app/public/.
 | |
| COPY ./src    /var/www/app/src/.
 | |
| COPY ./templates /var/www/app/templates/.
 | |
| COPY ./translations /var/www/app/translations/.
 | |
| COPY ./vendor /var/www/app/vendor/.
 | |
| 
 | |
| COPY ./.env /var/www/app/.env
 | |
| 
 | |
| # import the manifest.json file
 | |
| COPY ./public/build/manifest.json /var/www/app/public/build/manifest.json
 | |
| 
 | |
| ADD ./entrypoint.sh /.
 | |
| 
 | |
| RUN chmod +x /entrypoint.sh
 | |
| 
 | |
| ENTRYPOINT ["/entrypoint.sh"]
 | |
| 
 | |
| ENV PHP_FPM_USER=www-data \
 | |
|     PHP_FPM_GROUP=www-data \
 | |
|     COMPOSER_HOME=/var/www/app/.composer \
 | |
|     SESSION_LIFETIME=10800
 | |
| 
 | |
| CMD [ "php-fpm" ]
 |