运行帆泊坞窗容器中新

问题描述 投票:4回答:1

我是新来泊坞窗,我试图创建一个使用它的帆项目。我有以下疑问:

我想只有在容器安装帆,我不想NPM运行在我的主机安装-g帆,它是正确的做到这一点还是我错了?

因为我想只有在容器安装船帆,可以创建使用帆新的命令在容器中的项目结构?

docker sails.js
1个回答
4
投票

简短的回答

是的,你可以执行,仿佛你已经在主机上安装任何帆帆命令。一旦你有一个容器中运行,可以使用命令docker exec对容器内的执行任何命令,例如:

docker exec container-name sails new my-sails-project

或者,您可以连接到容器的壳,直接执行命令:

docker exec -it container-name /bin/sh
sails new my-sails-project

这两种方法将创建在/my-sails-project目录容器内的新帆项目。

长的答案

如上所述,如果执行使用这些两种方法之一sails new命令,它会创建一个容器内的项目。如果您要访问的项目在容器外(在主机上),你需要创建一个泊坞窗卷到你的容器内的文件夹安装到你的主机,例如:

docker run ... --volume "/some/path/to/dev/folder/on/your/host/machine:/my-sails-project

这将让你有机会获得在指定的目录在主机上通过sails new创建的所有文件。还有一点要注意的是,如果你使用sails lift运行容器内的帆服务器,您将需要公开该端口以便服务器是在主机上访问,你可以用--port标志实现这一目标,以推进创建端口映射如下:

docker run ... --port 1337:1337

其中port 1337由帆服务器所使用的默认端口。

把它放在一起

您可以通过简化包括在docker-compose文件上面的启动配置启动你的容器,并用它来启动你的容器。 Docker Compose是一个工具,允许你指定装饰品怎么容器将运行,您docker-compse.yml文件会是什么样子的例子:

version: '3'
container_name: sails-dev
ports:
  - 1337:1337
volumes:
  - /some/path/to/dev/folder/on/your/host/machine:/my-sails-project

然后你就可以从相同的目录docker-compose up文件运行docker-compose.yml启动项目(或使用-f标志指定它的路径)。

如果你发现你正在运行的sails经常命令,你可以在脚本中把docker exec命令,并呼吁与任何参数传递给它。如果添加这个脚本到您的路径,你可以调用,就好像是本地安装的,如导轨从主机直接命令:

#!/bin/sh
docker exec -it sails-dev sails $*

然后你可以运行sails通过./sails.sh some-sails-command命令。

© www.soinside.com 2019 - 2024. All rights reserved.