Docker в целом и docker для laravel 8. Прописываем первый Dockerfile для php. Создаем проект Laravel

preview_player
Показать описание
Стань спонсором(бусти аккаунт), доступ к собеседованиям:

Мои платные курсы:

План развития с нуля до middle+:

Группа вк:

-
-
. Ссылка для донатов, спонсорства, пожертвований
---
Dockerfile
FROM php:8.0-fpm

RUN apt-get update && apt-get install -y \
apt-utils \
libpq-dev \
libpng-dev \
libzip-dev \
zip unzip \
git && \
docker-php-ext-install pdo_mysql && \
docker-php-ext-install bcmath && \
docker-php-ext-install gd && \
docker-php-ext-install zip && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Install composer
ENV COMPOSER_ALLOW_SUPERUSER=1
--filename=composer \
--install-dir=/usr/local/bin

WORKDIR /var/www

Docker-composer file
version: '3'

services:
nginx:
image: nginx:latest
volumes:
- ./:/var/www
- ./_docker/nginx/conf.d:/etc/nginx/conf.d
ports:
- "8876:80"
depends_on:
- app
container_name: project_nginx

app:
build:
context: .
dockerfile: _docker/app/Dockerfile
volumes:
- ./:/var/www
container_name: project_app

max_execution_time = 1000
max_input_time = 1000
memory_limit=4G

nginx config

server {

root /var/www/public;

location / {
# kill cache
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache';
if_modified_since off;
expires off;
etag off;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}

}
Рекомендации по теме
Комментарии
Автор

Я посмотрел, пожалуй, все русскоязычные ролики по докеру в ютубе, но реально смог врубиться только благодаря твоим роликам!

DefCoast
Автор

Спасибо что сделал выпуск. Сохранить адекватность - лучшее, что можно сделать. Кричать и махать руками всегда успеем

kyutinen
Автор

Скажу коротко. Ты - красавчик. Писал давно на пхп, сейчас возвращаюсь в айти по твоим видео )

ringnull
Автор

Если вы поставили php 8 0 fpm и уже запустил программу, но при этом вам пишет что нужно к примеру 8 1, то вам нужно поменять на 8 1 fpm и самое главное запустить команду docker-compose build и когда отработает up -d

ridddlewrong
Автор

Классный урок но то что необходимо иметь установленным php необходимой версии и composer на локальной машине убивает все, таким же образом можно и все остальное установить

melissalife
Автор

При попытке зайти на localhost попадал на ошибку из-за отсутствующей папки vendor. Починил через docker exec -it php bash (у вас может быть другое имя контейнера). Далее выполнил composer update --no-scripts. После этого Laravel заработал.

secur
Автор

sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache . Это на линукс решает проблему. Но не опасно ли выставлять 777. и можно ли решение проблемы вставить в сценарий, например, Dockerfile?

Uh_Ty
Автор

А какой смысл устанавливать composer в контейнер?

androidiosgameplay-anrad
Автор

При написании конфига nginx в "location" вторую строку сделайте так, чтобы некоторые get запросы правильно работали

location / {
try_files $uri $uri/ /index.php?$query_string;

altynmagnat
Автор

При копировании из описания к видео, пропадает тире у Y во второй строке докерфайла. Без него ошибка

zuperrino
Автор

Спасибо, благодаря всем вашим курсам я вошел в Laravel!!! Скажите а можно ли сделать мини-курс Laravel + Redis? Во многих компаниях требуют знания Redis. Спасибо.

ZK-muhq
Автор

На 10 секунде запускаем composer, но мы его не устанавливали. Как установить его в контейнер.

РоманГ.Добровольский
Автор

Сделала все так, как в видео. Запустила докер. Запустился успешно, но если прописать в строке поиска localhost:8876, вылезает ошибка : Попытка соединения не удалась. Что делать...

Kittykatsss
Автор

500 internal server error nginx. Не открываются лог nginx. Вошел в контейнер через bash открываю лог через cat error.log. терминал просто завис.

ИгорьРоганов-се
Автор

а в какой момент выбирается операционная система? ее поменять можно?

AlimAlim-xn
Автор

В каком видео автор показал установку композера в контейнер php?

ВладимирМараховский-цу
Автор

Привет все сделал по твоему видео все круто все работает! Но возникла проблема когда я попытался менять локальный php.ini docker записал изначальные значения и игнорирует новые:( может кеш какой но вроде все перепробовал и ничего не помогает

alexkogotko
Автор

Всем привет, на linux столкнулся со статусом ошибки 500, решил ее с помощью команды "sudo chmod -R 777 storage && sudo chmod -R 777 bootstrap/cache" может кому поможет

dmirtykashko
Автор

А почему мы используем COPY в докерфайле, а не так же используем volumes?

Kuma
Автор

Добрый день, спасибо, повышаю свою квалификацию с помощью ваших курсов. Всё очень подробно и полезно.

Примите замечание/предложение

В самом начале вы создаете проект Ларавел вызывая composer в среде хоста (у вас windows),
не логичней ли в рамках самого принципа работы вызывать create-project из под докер контейнера, то есть там где настроена вся необходимая для функционирования среда, установлен php необходимой версии с необходимыми модулями и composer?

Следовал вашему видео, на этапе создания проекта отхватил проблем на несколько часов (ушёл изучать установку и настройку Nginx, PHP, MySQL для убунты), т.к. на хосте не хватало должной среды ( да и нужна ли она мне на хосте? )



Так же у меня возник вопрос с правами,
файлы созданные например через artisan из под докер контейнера на хосте имеют владельца root:root и соответственно не имеют прав на редактирование. Я эту проблемы решил, но думаю не лучшим образом.
Есть подозрения что проблема эта стандартная, видимо не хватает ещё каких то настроек для докер контейнера.

lisichkinuriy