用 Docker 取代 Laravel Homestead 開發環境

原文來自:用 Docker 取代 Laravel Homestead 開發環境

docker

新手第一次接觸 Laravel,我都會推薦使用 Homestead 來解決開發環境的困擾,但是我發現 Homestead 對於第一次接觸 Virtualbox 及指令的初學者,設定還是比較複雜,造成很多新手光是在這邊就卡關了,有沒有什麼辦法可以解決這煩人又複雜的 Homestead 設定,剛好今天在 Github 上看到 laraedit-docker 專案,此專案是把 Homestead 轉換成用 Docker 來跑,這樣只要您的環境有支援 Docker,就可以快速設定好環境含 MySQL, Redis ...等

建立 Laravel 專案

透過 Composer 指令建立 Laravel 專案

$ composer create-project --prefer-dist laravel/laravel blog

先假設 blog 目錄路徑為 ~/git/blog,此路徑底下會用到

使用 Docker

首先從 Docker hub 下載 laraedit-docker 映像檔

$ docker pull laraedit/laraedit

完成下載後,就可以直接啟動專案

$ docker run -d --name laravel -p 8082:80 -p 3307:3306 -v ~/git/blog:/var/www/html/app laraedit/laraedit

參數說明

--name: 啟動後服務名稱
-p: 啟動外面的 port 對應到 container 內部 port
-v: 目錄掛載

laraedit 預設將 80, 443, 3306, 6379 port 開出來,所以如果外部要直接存取,請使用 -p 參數來設定。

登入 Docker Shell

要透過 ssh 連入 Docker 請透過底下指令

$ docker exec -it laravel /bin/bash

其中 laravel 就是最上面 --name 設定,執行指令後,你就會進入 Shell 模式,可以進行 DB 操作記錄,執行 DB Migration 等...

進入 MySQL Console

上面我們將 3307 port 對應到 docker 內部 3306 port,所以可以透過 mysql 指令直接連上 MySQL 服務

$ mysql -u homestead -h 192.168.99.100 -P 3307 -p

預設帳號為 homestead 密碼為 secret

$ mysql -u homestead -h 192.168.99.100 -P 3307 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.11 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| homestead          |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql>

大致上用 Docker 就取代了 Homestead,所以大家快點把 Docker 安裝到自己的電腦。

本帖已被设为精华帖!
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!