【问题标题】:Node.js is not running in Docker is my docker-compose.yml correct?Node.js 没有在 Docker 中运行我的 docker-compose.yml 是否正确?
【发布时间】:2022-01-16 02:29:55
【问题描述】:

问题:

我正在尝试使用 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:

【问题讨论】:

  • 我通常发现处理 Node 代码的一个很好的工具就是 Node 本身;尝试设置 Docker 以运行 Node 以在您的主机上实际运行代码并没有真正的价值。您显示的 Compose 设置实际上并没有做任何事情,node 容器将立即退出而不做任何事情;你不能从主机调用它,它在一个隔离的容器中,看不到你的源文件,etc.
  • 好吧,这是有道理的。那么,在将 docker 与 WordPress 结合使用时,我将如何获得节点功能呢?或者 docker 对我来说不是一个有用的工具?

标签: node.js wordpress docker docker-compose


【解决方案1】:

你必须使用 Dockerfile 否则它将永远无法工作!

【讨论】:

  • 哦,真的吗?谢谢我不知道!我会试试看。
  • 一个好的答案将始终包括解释为什么这会解决问题,以便 OP 和任何未来的读者可以从中学习。
【解决方案2】:

问题是您已经提到启动 docker 容器,但只是想一想您将如何命令节点来告诉它需要做什么。当它看到没有命令的操作时,它基本上关闭了。

解决方案

  1. 很长的路要走 - 你可以用完一个 dockerfile,正如 Tom 所提到的,dockerfile 通常用于容器化你的应用程序,所以无论你需要什么代码都只需编写它,然后使用 Dockerfile 将你的代码构建到一个带有节点的 docker 映像中,但是在这种情况下,麻烦在于每次您进行任何代码更改时,您都会重复相同的流程并再次构建您的代码。
  2. 我能想到的另一种简单方法是在您的节点图像中添加command:npm start,这可能会对您有所帮助

如果我提出了错误的建议,请原谅我,因为我也是 docker 的学习者 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2019-07-20
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多