Docker compose Docker compose Nuxtjs

Docker compose Docker compose Nuxtjs,docker-compose,nuxtjs,Docker Compose,Nuxtjs,我正在创建我的第一个Nuxtjs应用程序,但我想使用Docker compose。根据本教程,我可以对我的应用程序进行Dockerize: 现在,我想使用compose将其提升到下一个级别,但我不太熟悉服务器端渲染以及这会如何影响docker compose文件。不幸的是,我找不到任何关于如何在NuxtJS应用程序上使用docker compose的指南。你知道我在哪里能找到好的导游吗?谢谢 更新: 我创建了一个docker-compose.yml文件并正在工作,但仍然找不到任何指南来查看它是否

我正在创建我的第一个Nuxtjs应用程序,但我想使用Docker compose。根据本教程,我可以对我的应用程序进行Dockerize:

现在,我想使用compose将其提升到下一个级别,但我不太熟悉服务器端渲染以及这会如何影响docker compose文件。不幸的是,我找不到任何关于如何在NuxtJS应用程序上使用docker compose的指南。你知道我在哪里能找到好的导游吗?谢谢

更新: 我创建了一个docker-compose.yml文件并正在工作,但仍然找不到任何指南来查看它是否是一个好的yml文件(最佳实践等)

版本:“3”
服务:
网状物:
生成:。
命令:npm run dev
端口:
- '3000:3000'

如果您已经可以在Docker中运行应用程序,那么Docker Compose不会给您带来太多好处,除非您需要运行多个容器。如中所述,Compose是一种用于定义和运行多容器Docker应用程序的工具

根据链接的教程,
docker compose.yaml
可能看起来像这样:

version: "3"

services:
  nuxt:
    image: nuxtjs-tutorial:latest
    ports:
      - "3000:3000"
    environment:
      - NUXT_HOST="0.0.0.0"
      - NUXT_PORT="3000"
不需要从Compose文件中设置环境变量,这只是一个示例。Compose允许您设置许多选项,如中所述。例如,您可以在Compose中运行应用程序,而不是使用
Dockerfile
中的
CMD
。或者,您只能在
Dockerfile
中复制
package.json
,在映像构建期间构建依赖项,并使用装载代码

我在网上找到了多个示例引用,但我不认为它们是最佳实践。最好阅读官方文件


关于更新,根据本教程中的
Dockerfile
,您甚至不需要
build
命令
条目,只需要
image
端口
。但正如我上面所说,您可以从Compose中设置许多选项,这在官方文档中有最好的描述。

谢谢@touchmarine,唯一的问题是端口不应该用引号括起来:
numxt\u port=3000
。NUXT_HOST.Ehi也有同样的问题:当我在本地修改应用程序时,更改不会反映在我正在运行的容器上!当您更改应用程序时,您需要再次构建映像并重新运行容器/编写。为了缓解这种情况,您可以创建一个带有卷装载的
docker compose.dev.yaml
,正如我在anwser中简要提到的那样。首先,在
Dockerfile
中,不要复制cwd中的所有内容,只复制依赖项列表文件,如
package.json
package lock.json
。您可以通过更改
Dockerfile
中的
COPY
或将其他文件添加到
.dockergnore
中来完成此操作。然后重建图像。在
docker compose.dev.yaml
中添加类似于
volumes:-.:/usr/src/nuxt/app
的内容。之后,还需要在compose文件中设置一个
入口点,该入口点将运行NuxtJS监视进程。上一条注释中定义的卷装载将使容器使用来自主机的文件,而不是在生成过程中复制的文件。我希望这些评论至少对你有所帮助。哦,在运行此程序时,请确保使用正确的docker compose文件,如:
docker compose-f docker-compose.dev.yaml up