docker 容器安装conposer_docker和php:将依赖项(composer)放入容器中
目前我正致力于以下解決方案:
開發環境:
將整個src添加為volume:
volumes:
- .:/app
initial composer install command
docker-compose exec app composer install
install new composer package:
docker-compose exec app composer require some/package
該軟件包將通過您的composer軟件包目錄中的容器安裝(當然默認為/ vendor),可以在您的ide中檢查源代碼等 .
生產環境 環境:
僅將app狀態定義為volume,例如:
volumes:
- public/uploads:/app/public/uploads
添加/供應商到.dockerignore
并在構建期間運行composer install
RUN cd /app && composer install --no-dev --no-interaction --optimize-autoloader
因此,您將部署預先構建的映像,但仍能夠以更靈活的方式進行開發 .
這個解決方案還有兩個缺點,也許有人為我輸入:
1)構建變得有點慢 - 似乎作曲家緩存無法正常工作
解決方案(我不知道在編寫器中是否可行)可以是作曲家緩存目錄的卷 .
2)docker創建的所有包都歸root所有,因此您只能使用sudo / root會話處理這些文件/文件夾 .
我不知道如何妥善解決這個問題 . 也許我可以為開發容器創建一個具有開發用戶名稱的用戶,并讓這個用戶運行命令和php-fpm等...對于 生產環境 root,我猜是好的 .
我仍然是碼頭 Worker 的新手,并且開放以獲得更好的解決方案,所以我不接受這個答案 .
UPDATED
在 Dockerfile 中在docker用戶中添加新用戶 . 如下
RUN useradd -ms /bin/bash newuser
USER newuser
如果你想創建家庭用戶
WORKDIR /home/newuser
要么
mkdir /home/newuser
如果你想回到root用戶,你可以這樣做
USER root
總結
以上是生活随笔為你收集整理的docker 容器安装conposer_docker和php:将依赖项(composer)放入容器中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android测光代码,常用测光表软件:
- 下一篇: java7 异常继承_Java基础7-异