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