{"id":13564591,"url":"https://github.com/DevinY/dlaravel","last_synced_at":"2025-04-03T21:31:13.904Z","repository":{"id":90077005,"uuid":"68235507","full_name":"DevinY/dlaravel","owner":"DevinY","description":"Laravel and Docker","archived":false,"fork":false,"pushed_at":"2024-11-29T07:38:09.000Z","size":3364,"stargazers_count":109,"open_issues_count":0,"forks_count":18,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-29T08:33:53.824Z","etag":null,"topics":["dlaravel","docker","docker-compose","laravel"],"latest_commit_sha":null,"homepage":"https://www.ccc.tc","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DevinY.png","metadata":{"files":{"readme":"README-zh_TW.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-14T19:15:30.000Z","updated_at":"2024-11-29T07:38:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb4988e0-93e9-44e9-bcf7-79bba1176dd9","html_url":"https://github.com/DevinY/dlaravel","commit_stats":null,"previous_names":[],"tags_count":85,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevinY%2Fdlaravel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevinY%2Fdlaravel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevinY%2Fdlaravel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevinY%2Fdlaravel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevinY","download_url":"https://codeload.github.com/DevinY/dlaravel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247083178,"owners_count":20880791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dlaravel","docker","docker-compose","laravel"],"created_at":"2024-08-01T13:01:33.311Z","updated_at":"2025-04-03T21:31:10.985Z","avatar_url":"https://github.com/DevinY.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"\n**[English Documentation](https://github.com/DevinY/dlaravel/blob/master/README.md)**\n\n## 此倉庫目前主要僅維護Dockerfile的更新，建議使用我最新的php環境bash。\n\n採連接埠基礎的環境，更容易與proxy整合及運用，更多功能。\n\nhttps://github.com/DevinY/phpenv\n\n# D-Laravel (開發\u0026學習)\n\n想要有 Docker + Laravel 建立PHP開發環境嗎，D-Laravel使用了docker-compose，\n\n他讓我們可透過自訂docker-compose-custom.yml輕易的擴充更多的服務，打造自己的微服務架構。\n\n經由超簡易的console及create指令，讓您更簡單的建立出Laravel或PHP開發或學習環境。\n\nD-Laravel，代表了，我們的Mac系統，不再需要安裝mysql、nginx、php-fpm或者NodeJs。\n\n\n### 為什麼用D-Laravel\n\n提供簡易方式執行docker-compose指令，快速生成laravel專案環境，而且還自動替您建立資料庫及調整Laravel的.env資料庫設定。\n\n可安裝sublime3外掛D-Laravel alias，經由sublime執行容器內的artisan及composer命令(MacOS及Linux環境)。\n\n可用最新的PHP在Mac OS、Linux、Widnows 10的gitbash環境執行。\n\n快速產生self-signed自我簽署的憑證，並完成HTTPS設定。\n\n不需要安裝DnsMasq軟體。\n\nD-laravel停止時，不會佔用80埠，拜docker-compose之賜，極易調整Listen的連接埠。\n\n秒級的啟動速度。\n\n可模擬不同的資料庫環境。\n\n可同時開啟多個不同的測試站台。\n\n使用Dockerhub標註offical的image，建立Laravel基本執行環境。\n\n用docker聽起來，好像比較潮。:p\n\u003cpre\u003e\n./console help (幫助，console參數用法。)\n./create test1  (建立test1.test)\n./console down或./console up (啟用及停用container)\n./console restart    (./console down再./console up)\n`./console alias`  \n(打./console指令太長了嗎，上方指令可暫時用c代表./console，所以執行後，輸入:c info、c up或c down..即可執行。)\n./console alias    (印出console的別名範本，自行加到.bashrc或.zshrc永久生效)\n./console version  (顯示D-Laravel的版本)\n\n產生自我簽署憑證給目前所有的Project. (MacOS or Linux)。\n./console secure\n\u003c/pre\u003e\n\n#### D-Laravel易懂目錄結構\n\u003cpre\u003e\netc/   (nginx、php.ini及mysql的相關設定檔)\ndata/  (mysql的資料檔案，./console up 自動生成)\ndockerfiles/ (放置一些dockerfile，需要時重build自已的image使用)\nlogs/  (用來掛載及放置服務的紀錄)\nservice/ (放置擴充用的yml檔)\nsites/ (專案的資夾，例如./create blog時，會建立在這個此目錄下)\nsamples/ (一些設定範本，例如: php.ini及一些額外的docker-compose yaml檔設定)\ncreate (簡化的bash，用來快速的建立laravel的專案)\nconsole(簡化的bash，用來快速使用各種docker-compose的命令。例如:./console mysql即可進入mysql)\ndocker-compose.yml (一個softlink，連結到不同的設定檔，例如:./console custom，即何將連結連到docker-compose-custom.yml)\n\u003c/pre\u003e\n#### docker及docker-compose 版本要求\n\ndocker \u003e= 18.02.0\n\ndocker-compose \u003e= 1.19.0\n\n#### 一、請先安裝docker\n## 請使用最新版本的docker，至少應為18.02.0以上。\n\n執行docker version確認docker的版本。\n\u003cpre\u003e\n$docker version\nClient:\n Version:           18.06.0-ce\n API version:       1.38\n Go version:        go1.10.3\n Git commit:        0ffa825\n Built:             Wed Jul 18 19:05:26 2018\n OS/Arch:           darwin/amd64\n Experimental:      false\n\nServer:\n Engine:\n  Version:          18.06.0-ce\n  API version:      1.38 (minimum version 1.12)\n  Go version:       go1.10.3\n  Git commit:       0ffa825\n  Built:            Wed Jul 18 19:13:46 2018\n  OS/Arch:          linux/amd64\n  Experimental:     true\n\u003c/pre\u003e\n## 安裝docker的網址:\n\u003cpre\u003e\nMac OS系統:\nhttps://docs.docker.com/docker-for-mac/\n\nUbuntu:\nhttps://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-docker-ce\n\nWindows 10:\nhttps://docs.docker.com/docker-for-windows/install/\ngitbash環境 (console及create需在gitbash環境執行，並且gitbash需可正確執行laravel installer!!)\n\n\u003c/pre\u003e\n\n## 請確認您使用新版的docker-compose。\n\n執行docker-compose version\n\n大於等於\n\ndocker-compose version 1.19.0\n\n## 安裝docker-compose網址\n\u003cpre\u003e\nhttps://docs.docker.com/compose/install/\n\u003c/pre\u003e\n\n#### 二、例如:可用git clone下載這個repo，並進入dlaravel工作目錄。\n\u003cpre\u003e\ngit clone https://github.com/DevinY/dlaravel.git\ncd dlaravel\n\u003c/pre\u003e\n\n#### 三、執行./create ['project name'] 建立開發專案\n\u003cpre\u003e\n例如: (第一次執行會自動下載所需的Image，需較長的時間)\n./create test1\n\n那麼就會建立出 http://test1.test 網站(本機測試用的外部無法存取)。\n可以建立多個project站台\n\n由於create的bash需有系統權修改/etc/hosts檔，./create的過程中會需要詢問您的系統密碼:\ncreate指令、可在Mac OS、Linux及Windows 10的gitbash(Laravel installer)環境使用。\n\u003c/pre\u003e\n\n\n#### 四、停止請在目錄下執行./console down\n\u003cpre\u003e\n注意事項: 這個只是拿來開發測試用的，Mysql的root是沒有密碼的。\n你可能需要修改docker-compose.yml啟動時的TZ，目前設為Asia/Taipei\n\u003c/pre\u003e\n\n#### 五、更新d-laravel bash程式及一些基本設定檔。\n\u003cpre\u003e\ngit pull\n\n在d-laravel的.gitignore已排除了會變動的區域了，例如: docker-compose.yml、docker-compse-custom.yml, sites專案資料夾等。\n所以在dlaravel的目錄下，您可以透過git pull取得最新的版本及設定。\n\u003c/pre\u003e\n\n#### 六、別名及功能(不需進入container即可執行container內的composer或artisan指令)\n\n取得console別名\n\u003cpre\u003e\n ./console alias\n\u003c/pre\u003e\n把輸出結果，新增到~/.bash_profile，或是如果您用Z shell，新增到~/.zshrc檔案內。\n在MacOs的系統預設不會有.bash_profile在家目錄中，你可以在終端機自己touch一個。\n輸入: touch ~/.bash_profile\n\n非必要項，自己有需要可新增或調整名稱。\n\u003cpre\u003e\nalias laravel='docker-compose exec -u dlaravel php /home/dlaravel/.composer/vendor/bin/laravel'\n\u003c/pre\u003e\n使用dlaravel的身份執行container內的laravel installer\n\n在Project內執行composer，例如ce dump\n\u003cpre\u003e\nalias ce=\"../../composer.sh\"\n\u003c/pre\u003e\n\n我們可以在自己的電腦加入別名，這樣就可不需進入container內執行php artisan指令了.\n讓artisan的指令更簡潔，這理我直接將別名命名為a。\n例如: a --version\n\u003cpre\u003e\nalias a=\"../../artisan.sh\"\n\u003c/pre\u003e\n\n\n\u003cpre\u003e\nalias phpunit='docker-compose -f ../../docker-compose.yml exec -u dlaravel php $(basename ${PWD})/vendor/bin/phpunit -c $(basename ${PWD})/phpunit.xml'\n\u003c/pre\u003e\n加入這個alias可以執行簡phpunit。\n#### 其他\n\u003cpre\u003e\n./create [project名稱] 會建立及下載laravel，搞定一切設定，包含資料庫，\n但如果是一個已存在的Project，只需有nginx的設定，應該怎麼做呢?\n\n使用--host 即可修改系統的/etc/hosts檔，加入project的域名，如: project1.test。\n./create --host [project名稱] 例如:./create --host project1\n\n可以將已存在的Laravel專案移到sites資料夾內。\n\n或是使用composer create-project指令建立Project.\n例如使用手動指令手動建立Project，這裡用lumen示範。\n./console exec，可用於執行php contaiener內的命令\n\n./console exec php composer create-project --prefer-dist laravel/lumen project1\n\u003c/pre\u003e\n#### 調整設定檔的image切換\nPHP: (OFFICIAL REPOSITORY重build符合Laravel環境)\nhttps://hub.docker.com/r/deviny/fpm/tags/\n\u003cpre\u003e\n mage: deviny/fpm:7.3.5\n image: deviny/fpm:7.2.18\n image: deviny/fpm:7.1.29\n image: deviny/fpm:5.6.39\n\u003c/pre\u003e\n\nNginx: (OFFICIAL REPOSITORY)\nhttps://hub.docker.com/r/library/nginx/\n\nMysql: (OFFICIAL REPOSITORY)\nhttps://hub.docker.com/_/mysql/\n\n註: 原data資料夾已產生時，變更不同的mysql版本，在docker-compose.yml的設定檔內，\n你需可能需調整資料庫夾data的名稱，確保新版的mysql image能正常運作。\n例如:我將data設更為data_mysql8\n\n\u003cpre\u003e\ndb:\n  image: mysql:8\n  略..\n  volumes:\n      - ./etc/mysql/my.cnf:/etc/mysql/my.cnf\n      - ./data_mysql8:/var/lib/mysql\n\u003c/pre\u003e\n\n#### 進階\n如果您想重build自己php的fpm image版本。\n例如下方建立了一個名為myfpm的image。\n\u003cpre\u003e\ncd dockerfiles/fpm/7.2\ndocker build -t myfpm .\n\u003c/pre\u003e\n\nAnd then edit Your docker-compose.yml file.\n然後，編輯docker-compose.yml檔，如下:\n\u003cpre\u003e\n php:\n  network_mode: \"service:web\"\n  image: myfpm\n\u003c/pre\u003e\n\nDocker指令及DevinY/dlaravel提供的./console的bash指令\n\n|Docker官方指令   |簡易./console Bash指令| 說明|\n|---|---|---|\n| docker-compose pull  |./console pull   |抓最新的images   |\n| docker-compose up -d  |./console up   |啟動container   |\n| docker-compose down  |./console down  |停止container   |\n| docker-compose ps或docker ps|./console ps  |查看docker-compose的process   |\n| docker-compose exec -u dlaravel php bash   |./console  |進入php的container   |\n| docker-compose exec php 指令  |./console exec 指令 |執行php container 指令，例如: ./console exec php -v|\n| docker-compose exec db mysql   |./console mysql  |執行mysql   |\n| docker-compose exec web nginx -s reload   |./console reload  |重載nginx設定   |\n| docker-compose logs -f [SERVICE]   |./console logs  |看nginx的log，Ctrl+C停止 |\n|   |./create [ProjectName]|建立一個project，並完成所有基本的環境設定   |\n|   |例如: ./create test1  |例如: 這樣會建立一個http://test1.test的網站   |\n|   |./console restart  |重啟container   |\n|   |./console info  |查看目前可用的sites資料(這裡是查單的查詢sites資料夾)   |\n|模式切換:|\n|   |./console random  |container啟動時，使用隨機埠|\n|   |./console normal  |使用本機port 80及127.0.0.1:3306|\n|   |./console custom  |使用自己的docker-compose-custom.yml|\n|下方: -f: 指定docker-compose設定檔。 up -d:啟動在背景執行。|\n|docker-compose -f docker-compose-normal.yml up -d| |使用port 80及port 3306|\n|docker-compose -f docker-compose-random.yml up -d| |指定隨機埠的啟動檔|\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDevinY%2Fdlaravel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDevinY%2Fdlaravel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDevinY%2Fdlaravel/lists"}