在Windows快速入门的docker上运行ember

通过本教程设置Docker容器中的ember-cli: http ://www.rkblog.rk.edu.pl/w/p/setting-ember-cli-development-environment-ember-21/

这是我的步骤:

  1. 在主机上的空文件夹中创builddocker-compose.yml
  2. 推出Docker快速入门获取terminal
  3. 更改为.yml文件夹
  4. 从terminal执行下面的两个docker-compose命令(添加-d,因为没有,你会得到一个消息,交互模式不被支持)
  5. Ran docker ps -avalidation容器正在运行
  6. Randocker工检查CONTAINER_ID以查找正在运行的容器的IP地址
  7. 在一个奇怪的位置find了IP地址(172.17.0.2)
  8. 尝试从主机Windows机器浏览器访问该IP上的端口4200,并通过curl从Docker CL访问,但没有成功。
  9. Ran docker ps -a,发现这两个已经实例化的容器已经退出。
  10. 现在,如果我尝试再次启动容器,它会立即退出

docker-compose运行-d –rm ember init docker-compose运行-d –rm ember服务器

我错过了什么起床和运行? 我是否需要在虚拟机中运行的默认虚拟机上打开端口? 我如何诊断容器为什么退出?

首先我会build议使用docker-compose up ,这很可能是你想要的。

要查看分离容器的日志,可以运行docker logs <container name> 。 如果有任何错误,你会在那里看到它们。

“集装箱出口”的一个可能原因是因为这个过程进入了背景。 Docker需要一个进程停留在前台,但是许多服务器命令将默认serve后台。 为了使进程保持在前台,有时候可以使用像--foreground或者--no-daemon这样的标志,但是我不确定是否存在一个ember。

如果该标志不存在,那么很可能是ember server正在检查stdin / stdout是否连接到一个tty。 默认情况下他们不是。 您可以将这些行添加到您的docker-compose.yml来修复它:

 stdin_open: True tty: True 

好吧终于解决了。 与模块parsing的问题可能是在Windows上的长文件名parsing,因为在我将源文件夹移动到主机的根后,我可以得到运行在Windows下的烬服务。

然后从terminal窗口我运行命令来初始化和启动余烬服务器

 docker-compose run -d --rm ember init docker-compose run -d --rm ember server 

然后呢:

 docker-compose up -d 

它成功地启动了容器,然后我能够访问注释中前面指定的IP:端口上提供的Ember页面

http://192.168.99.100:4200/