by Devin Yang

建立於: 7年前 ( 更新: 7年前 )

前言

進行Laravel開發時,有時我們會需要透過npm安裝nodejs的套件,但是偏偏我們系統中的Node又不夠新。
或許因某些因素沒法升級,例如要跑舊版的nodejs程式等。
其實我們可以透過簡單的指令,用docker,讓我們就能使用最新版本的node image來掛載host端的/sites資料夾囉。
這麼一來我們就可以隨時執行新版本的npm指令啦。

docker指令

當我們在dlaravel的資料夾時,執行如下指令:
docker run --rm -v ${PWD}/sites:/sites -w /sites -ti node bash

例如使用LTS版本:
docker run --rm -v ${PWD}/sites:/sites -ti node:8.11.4 node npm -v

請讓我來一一進行說明:
run:    用執行一個新的容器。 (Run a command in a new container)
--rm:  容器停止時,自動移除容器。 (Automatically remove the container when it exits)
-v:      綁定掛載一個卷宗。(Bind mount a volume)
          這裡代表了,主機端的sites資料夾的資料,會在container內的/sites資料夾被看到。
-w:     預設的工作目錄,這裡設定在/sites,這樣我們進入container後,會在/sites的資料夾內,即是D-Laravel的Projects資料夾。
-t:       分配一個偽終端機 (Allocate a pseudo-TTY)
-i:       保持標準輸入開啟 ( Keep STDIN open even if not attached)
node: 即是我們要使用的image。
bash: 我們要執行在container中的指令。

也就是說,執行上方的指令,我們就可以進入container內囉。

可以輸入ls查看project的目錄。
進入Laravel的Project目錄,
就能輕鬆的npm install或是npm run dev啦。

D-Laravel指令(v1.6.6版)

確認D-Laravel版本。
./console version
D-Laravel release v1.6.6

進入方式
./console node

更簡單吧,而且當您使用./console alias設定為別名時,一樣有效,可以在任意目錄執行。






 

Tags: docker laravel

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


laravel

我如何升級後台到Lravel 5.5

我的後台一開始是自己打造的框架,一樣採用MVC架構,自己做的資料庫連線及環境設定檔等,包含自己的樣版語法,直到我想要去支援Restful時, 有個想法,別人都寫好了我何必自己去重寫同樣的功能,寫出來會比較好嗎? 所以開始改用框架, 一開始採用Slim,主要因為他對於php的支援版本較低,但由於的Slim的twig templates沒有Laravel的blade template好用...

dlaravel

使用docker in docker建立D-Laravel測試環境。

D-Laravel是一個極易使用並且極有彈性的Laravel開發環境,只要您是Mac的使用者,就算不懂Docker也可以透過他來建立Laravel的專案,進行開發,由於最近加入.env的功能新功能時,急者push,卻沒有完整測試,搞出了一堆新的Bug,所以,這次新增了一個新的dlaravel_test,bash的測試工具,透過doceker in docker的方式來跑測試。確保D-Laravel的每一次釋出都能是一個穩定的版本。

fastapi,phpenv,docker

我如何用phpenv建立fastapi執行環境

雖然phpenv主要用於運行PHP Laravel的環境,但不代表他不能跑其他語言或其他容器。本文介紹,我如何讓phpenv跑python的fastapi環境,當然這只是一個概念,目前為止,我已經讓PHP api跑HAProxy了,並且自動申請及更新免費憑證,現在就讓他來跑Python的fastapi吧。phpenv沒有什麼限制,限制的是您的想像力😆