юзер в контейнере
юзер в контейнере
использую докер https://github.com/yiisoft/yii2-app-bas ... ompose.yml
в итоге в контейнере проект с правами 1000:1000 изза того что нету юзера, и апач не может получить доступ к assets
как правильно запускать? вручную создать нужного юзера и настроить ему права?
в итоге в контейнере проект с правами 1000:1000 изза того что нету юзера, и апач не может получить доступ к assets
как правильно запускать? вручную создать нужного юзера и настроить ему права?
Re: юзер в контейнере
Я докер не знаю, но кажется в этом самом разделе видел, как нужного пользователя в конфиге докера прописывали.
Re: юзер в контейнере
возможно
но в readme https://github.com/yiisoft/yii2-app-basic ничего не написано
но в readme https://github.com/yiisoft/yii2-app-basic ничего не написано
Re: юзер в контейнере
chmod -R 777 assets в хостовой системе
Re: юзер в контейнере
про 777 знаю но это не правильное решение
надо решение через юзера и права
конечно можно руками сделать но где тогда автоматизация?
надо решение через юзера и права
конечно можно руками сделать но где тогда автоматизация?
Re: юзер в контейнере
Для producton правильное. Даже init yii делает 777 на assets. Вкупе с отключением выполнения php кода в каталогах, куда apache может писать это безопасно. Делать чтобы процесс apache имел права владельца на весь проект и мог изменять любой файл с кодом, согласитесь, небезопасно. Но это актуально только для production.
Для development можно сделать чтобы в контейнере пользователь www-data имел такой же uid и gid как и пользователь, от которого редактируется код приложения в хостовой системе. Если это подходит, могу показать как это делаю я. Помогает не только для assets и runtime, но и для кодогенерации с gii через веб-интерфейс.
Для development можно сделать чтобы в контейнере пользователь www-data имел такой же uid и gid как и пользователь, от которого редактируется код приложения в хостовой системе. Если это подходит, могу показать как это делаю я. Помогает не только для assets и runtime, но и для кодогенерации с gii через веб-интерфейс.
Re: юзер в контейнере
читал что вместо 777 достаточно добавить апач или другой аккаунт в группу юзера
странно что приходится доделывать после развертывания
разве докер не должен все автоматизировать?
странно что приходится доделывать после развертывания
разве докер не должен все автоматизировать?
Re: юзер в контейнере
В корень проекта кладем Dockerfile:
Правим docker-compose.yml (сервис php):
Делаем два bash-скрипта:
app.sh:
build.sh:
Запускаем командой ./app.sh, если что-то поменяли в Dockerfile, ребилдим контейнеры командой ./build.sh
Повторюсь, все это годится только для development, для production не пойдет.
P.S. Докер это не серебрянная пуля, которая все и вся сразу делает красивым и удобным, это инструмент, к которому нужно найти подход.
Код: Выделить всё
FROM yiisoftware/yii2-php:7.1-apache
ARG uid
ARG gid
RUN usermod -u $uid www-data
RUN chmod 755 /usr/local/bin/composer
RUN chown www-data:www-data /var/www
Код: Выделить всё
services:
php:
build:
context: .
args:
- uid=${uid}
volumes:
- ~/.composer-docker/cache:/root/.composer/cache:delegated
- ./:/app:delegated
ports:
- '8000:80'
app.sh:
Код: Выделить всё
#!/usr/bin/env bash
export uid=$(id -u)
export gid=$(id -g)
docker-compose up -d
Код: Выделить всё
#!/usr/bin/env bash
export uid=$(id -u)
export gid=$(id -g)
docker-compose build
Повторюсь, все это годится только для development, для production не пойдет.
P.S. Докер это не серебрянная пуля, которая все и вся сразу делает красивым и удобным, это инструмент, к которому нужно найти подход.
Re: юзер в контейнере
если я правильно понял наличие файла docker-compose.yml не освобождает от донастройки запуска проекта?
Re: юзер в контейнере
Смотря что понимать под донастройкой. В большинстве случаев - нет, билдим свои образы, отдельно под development и production.
Если не нравится Dockerfile в репозитории проекта - отдельно билдим образ, выкладываем его в собственный docker registry или на dockerhub и ссылаемся в compose.