問題:
我正在嘗試使用 wsl2 在 Windows 11 上設定 Docker WordPress 開發環境。我創建了一個 docker-compose.yml,除了節點安裝之外,一切都正常作業。容器嘗試啟動它,然后停止。我的 docker-compose 檔案中有問題嗎?
我想使用 node,因為我為我的 WordPress 主題使用 gulp、npm 和瀏覽器同步。
這是我的 docker-compose.yml:
version: "3.9"
services:
db:
image: mysql:5.7
volumes:
- dbdata:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wp-content:/var/www/html/wp-content
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
node:
restart: "no"
image: node:latest
container_name: nodejs
depends_on:
- wordpress
volumes:
- node-data:/usr/src/app
ports:
- 3000:3000
- 3001:3001
volumes:
dbdata:
wp-content:
node-data:
uj5u.com熱心網友回復:
您必須使用 Dockerfile 否則它將永遠無法作業!
uj5u.com熱心網友回復:
問題是您已經提到要啟動 docker 容器,但只是想一想,您將如何命令節點來告訴它需要做什么。當它沒有看到任何命令時,它基本上會關閉。
解決方案
- 很長的路 - 你可以用完一個 dockerfile,正如 Tom 所提到的,dockerfile 通常用于容器化你的應用程式,所以你需要的任何代碼都只需撰寫它,然后使用 Dockerfile 將你的代碼構建到一個帶有節點的 docker 映像中,但在這種情況下麻煩的是,每次您進行任何代碼更改時,您都會重復相同的程序并再次構建您的代碼。
- 我能想到的另一種簡單方法是
command:npm start在您的節點影像中添加一個,這可能會對您有所幫助
如果我提出了錯誤的建議,請原諒我,因為我也是 docker 的學習者 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/411635.html
標籤:
