0

我正在尝试将示例节点 js 应用程序部署到 docker。

我正在学习 http://oskarhane.com/create-a-nodejs-docker-io-image/的教程。

在教程中,有第 4 步:作者要求用代码修改 app.js 并放置在 /app/www/app.js 但我的问题是当我做 winscp 时,我找不到文件夹 /www在 /var 中。我真的被困在了这个地方。

谁能告诉我如何用服务器代码修改js文件app.js?或者任何更简单的逐步方法可以在 ubuntu 12.04 docker 上部署任何应用程序,请告诉我。

4

2 回答 2

4

作者/var/www步骤 2中创建:

mkdir /var/www && echo 'console.log("Hello from Node.js");' > /var/www/app.js

他在步骤 3 中将其提交给图像。因此,您在步骤 3 之后获得的图像应该容器/var/www

docker commit 0a7e9dd8dbdd NodeBase

所以图像NodeBase将包含一个文件夹/var/www。如果不是,您在第 2 步或第 3 步中犯了错误。

但是,我认为这是一个奇怪的教程。在交互式外壳中构建容器并不是非常可取的。相反,我会使用 Dockerfile 来构建您的图像。你知道如何在(比如说)Ubuntu 上安装 Node.js 吗?如果你这样做,你可以在 Dockerfile 中做同样的事情:

FROM ubuntu
RUN apt-get -y install nodejs
ADD /your-app/ /var/www/your-app
CMD run-node-here

然后构建图像docker build -t yourImage .并运行它。

Node.js 非常流行,所以你很幸运能找到一个已经准备好的 Node.js 镜像。您可以访问https://index.docker.io并搜索合适的 Node.js 映像。您将找到的第一个将是https://index.docker.io/u/dockerfile/nodejs/。您可以只使用此映像并将您自己的应用程序安装到它:

docker pull dockerfile/nodejs
docker run -it -v /your/node/app:/data:rw --rm dockerfile/nodejs node 

请注意,我没有使用 Node.js 的经验,只是使用 Docker。所以我没有测试过这些东西,我只是给你一个一般的建议。如果您不想安装 Node.js,请搜索可以挂载您的应用程序并启动 Node.js 的图像(可能是上面提到的那个)。否则,编写自己的 Dockerfile 并安装 Node.js,就像在 Linux 上那样。

于 2014-05-30T07:32:15.673 回答
0

如果 nano 在某些版本的 Ubuntu 中不起作用,您可以使用 vi 编辑器

于 2014-05-30T07:18:10.200 回答