Otherwise phpstorm doesn't understand the paths correctly. He thinks that this is not a complete application, but a package. And when creating a class, the namespace indicates “app” with a small letter, but should be “App”.
		
			
				
	
	
		
			119 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
FROM docker.io/php:8.3-zts-alpine3.18 AS UNIT_BUILDER
 | 
						|
 | 
						|
ARG UNIT_VERSION=1.31.1
 | 
						|
 | 
						|
RUN apk --no-cache add pcre2-dev gcc git musl-dev make && \
 | 
						|
    mkdir -p /usr/lib/unit/modules && \
 | 
						|
    git clone https://github.com/nginx/unit.git && \
 | 
						|
    cd unit && \
 | 
						|
    git checkout $UNIT_VERSION && \
 | 
						|
    ./configure --prefix=/var --statedir=/var/lib/unit --runstatedir=/var/run --control=unix:/run/unit/control.unit.sock --log=/var/log/unit.log --user=www-data --group=www-data --tmpdir=/tmp --modulesdir=/var/lib/unit/modules && \
 | 
						|
    ./configure php && \
 | 
						|
    make && \
 | 
						|
    make install
 | 
						|
 | 
						|
FROM docker.io/php:8.3-zts-alpine3.18 as BUILD
 | 
						|
 | 
						|
COPY --from=UNIT_BUILDER /var/sbin/unitd /usr/sbin/unitd
 | 
						|
COPY --from=UNIT_BUILDER /var/lib/unit/ /var/lib/unit/
 | 
						|
 | 
						|
COPY docker/unit-config.json /docker-entrypoint.d/config.json
 | 
						|
 | 
						|
RUN apk --no-cache add pcre2 libbz2 libpng libwebp libjpeg-turbo icu-libs freetype oniguruma libzip \
 | 
						|
    && apk add --no-cache --virtual .phpize-deps icu-dev libpng-dev bzip2-dev libwebp-dev libjpeg-turbo-dev freetype-dev oniguruma-dev libzip-dev pcre2-dev ${PHPIZE_DEPS} \
 | 
						|
    && docker-php-ext-configure intl --enable-intl && \
 | 
						|
    docker-php-ext-configure bcmath --enable-bcmath && \
 | 
						|
    docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp && \
 | 
						|
    docker-php-ext-install -j$(nproc) gd && \
 | 
						|
    docker-php-ext-install bcmath &&\
 | 
						|
    docker-php-ext-install pdo \
 | 
						|
        mysqli pdo_mysql \
 | 
						|
        intl mbstring \
 | 
						|
        zip pcntl \
 | 
						|
        exif opcache bz2 \
 | 
						|
        calendar \
 | 
						|
    && pear update-channels && pecl update-channels \
 | 
						|
    && pecl install redis && docker-php-ext-enable redis \
 | 
						|
    && rm -rf /tmp/pear \
 | 
						|
    && docker-php-source delete \
 | 
						|
    && apk del .phpize-deps \
 | 
						|
    && rm -rf /var/cache/apk/* && rm -rf /etc/apk/cache \
 | 
						|
    && rm -rf /usr/share/php && rm -rf /tmp/* \
 | 
						|
    && rm "$PHP_INI_DIR/php.ini-development" \
 | 
						|
    && mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \
 | 
						|
    && mkdir -p /tmp/php/upload \
 | 
						|
    && mkdir -p /tmp/php/sys \
 | 
						|
    && mkdir -p /tmp/php/session \
 | 
						|
    && chown -R www-data:www-data /tmp/php \
 | 
						|
    && ln -sf /dev/stdout /var/log/unit.log \
 | 
						|
    && addgroup -S unit && adduser -S unit -G unit
 | 
						|
 | 
						|
FROM BUILD as APP_BUILD_FOR_PRODUCTION
 | 
						|
WORKDIR /home/app
 | 
						|
 | 
						|
COPY application /home/app
 | 
						|
 | 
						|
RUN apk --no-cache add git nodejs npm \
 | 
						|
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
 | 
						|
    && composer install --optimize-autoloader --no-dev \
 | 
						|
    && npm install && npm run build \
 | 
						|
    && rm -rf /home/app/node_modules /home/app/.env
 | 
						|
 | 
						|
 | 
						|
FROM BUILD AS PRODUCTION
 | 
						|
 | 
						|
COPY --from=APP_BUILD_FOR_PRODUCTION /home/app /var/www/html
 | 
						|
COPY docker/docker-entrypoint_prod.sh /home/unit/docker-entrypoint.sh
 | 
						|
 | 
						|
WORKDIR /var/www/html
 | 
						|
 | 
						|
RUN chmod 755 /home/unit/docker-entrypoint.sh
 | 
						|
 | 
						|
STOPSIGNAL SIGTERM
 | 
						|
 | 
						|
ENTRYPOINT ["/home/unit/docker-entrypoint.sh"]
 | 
						|
EXPOSE 9000
 | 
						|
CMD ["unitd", "--no-daemon", "--control", "unix:/var/run/control.unit.sock", "--user", "unit", "--group", "unit"]
 | 
						|
 | 
						|
 | 
						|
FROM BUILD AS DEVELOP
 | 
						|
 | 
						|
WORKDIR /var/www/html
 | 
						|
 | 
						|
COPY docker/docker-entrypoint_dev.sh /home/unit/docker-entrypoint.sh
 | 
						|
 | 
						|
STOPSIGNAL SIGTERM
 | 
						|
 | 
						|
RUN chmod 755 /home/unit/docker-entrypoint.sh \
 | 
						|
    && apk --no-cache add git nodejs npm \
 | 
						|
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
 | 
						|
 | 
						|
ENTRYPOINT ["/home/unit/docker-entrypoint.sh"]
 | 
						|
 | 
						|
EXPOSE 9000
 | 
						|
CMD ["unitd", "--no-daemon", "--control", "unix:/var/run/control.unit.sock", "--user", "unit", "--group", "unit"]
 | 
						|
 | 
						|
 | 
						|
 | 
						|
FROM BUILD AS ARTISAN
 | 
						|
WORKDIR /var/www/html
 | 
						|
STOPSIGNAL SIGTERM
 | 
						|
ENTRYPOINT ["php", "/var/www/html/artisan"]
 | 
						|
 | 
						|
 | 
						|
FROM BUILD AS COMPOSER
 | 
						|
WORKDIR /var/www/html
 | 
						|
STOPSIGNAL SIGTERM
 | 
						|
RUN apk --no-cache add git \
 | 
						|
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
 | 
						|
ENTRYPOINT ["composer"]
 | 
						|
 | 
						|
 | 
						|
 | 
						|
FROM BUILD AS NPM
 | 
						|
RUN mkdir "/.npm" && chmod -R 0777 "/.npm"
 | 
						|
WORKDIR /var/www/html
 | 
						|
STOPSIGNAL SIGTERM
 | 
						|
RUN apk --no-cache add nodejs npm
 | 
						|
ENTRYPOINT ["npm"]
 |