node.js - Docker 容器中 Sailsjs 应用程序的问题

标签 node.js macos docker sails.js fig

在容器中运行 Sails 应用程序 (Node.js) 时遇到两个问题。 我的容器有一个安装了 Nodejs 的 Dockerfile,如下所示

FROM ubuntu:14.04

RUN apt-get update && apt-get install -y \
    autoconf \
    build-essential \
    imagemagick \
    libbz2-dev \
    libcurl4-openssl-dev \
    libevent-dev \
    libffi-dev \
    libglib2.0-dev \
    libjpeg-dev \
    libmagickcore-dev \
    libmagickwand-dev \
    libmysqlclient-dev \
    libncurses-dev \
    libpq-dev \
    libreadline-dev \
    libsqlite3-dev \
    libssl-dev \
    libxml2-dev \
    libxslt-dev \
    libyaml-dev \
    zlib1g-dev \
    rbenv \
    ca-certificates \
    curl \
    && rm -rf /var/lib/apt/lists/*

RUN gem install sass

# verify gpg and sha256: http://nodejs.org/dist/v0.10.31/SHASUMS256.txt.asc
# gpg: aka "Timothy J Fontaine (Work) <tj.fontaine@joyent.com>"
RUN gpg --keyserver pgp.mit.edu --recv-keys 7937DFD2AB06298B2293C3187D33FF9D0246406D

ENV NODE_VERSION 0.10.32
ENV NPM_VERSION 2.1.4

RUN curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" \
     && curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
     && gpg --verify SHASUMS256.txt.asc \
    && grep " node-v$NODE_VERSION-linux-x64.tar.gz\$" SHASUMS256.txt.asc | sha256sum -c - \
    && tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 \
    && rm "node-v$NODE_VERSION-linux-x64.tar.gz" SHASUMS256.txt.asc \
    && npm install -g npm@"$NPM_VERSION" \
    && npm cache clear

EXPOSE  1337

CMD ["/bin/bash"]

我用Fig运行我的容器,这是我的fig.yml:

web:
  build: mypath/to/dockerfile/
  volumes:
    - ../src:/src
  ports:
    - "1337:1337"
  expose:
    - "1337"
  environment:
    NODE_ENV: development

并使用命令:

fig run web

我的容器启动良好, Node 和我的代码位于/src 中。但是当我尝试在容器中升起 sails 时,速度非常慢。与我电脑上安装的卷有关吗? 我的另一个问题是,当风 sails 升起时,我无法在浏览器中访问我的应用程序。

注意:

  • 我在 Mac OSX 上使用 Boot2Docker(我从 Boot2Docker 获取 IP 以测试是否可以在浏览器中访问我的容器)。

  • 我无法制作副本而不是卷,因为我正在开发中,并且我不想每次编辑代码时都创建容器。批量生产是不是一个坏主意?

  • 如果我尝试在容器中安装 npm 也很慢,这是否相关?

感谢您的帮助!

最佳答案

Here是比较虚拟机中的文件系统性能。这不会解决您的 VirtualBox 问题,但您可以尝试避免它:https://github.com/Parallels/boot2docker-vagrant-box

关于node.js - Docker 容器中 Sailsjs 应用程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26584864/

相关文章:

javascript - 是否可以针对特定按钮单击发出 HTTP Post 和 Get 请求? [Node.js、Express[

node.js - 无需 npm 手动安装 Angular 5 模块

html - 有什么方法可以使用 wkhtmltopdf 减小文件大小?

docker - 如何退出因网络错误而卡住的 `kubectl exec` 命令?

在 Ubuntu 20.04 LTS(Vmware)上安装 docker 失败

javascript - Node.js Websocket 服务器无法在线工作

node.js - 当我运行 npm start 时,未创建我的主输出文件

c - vm_write 返回 (os/kern) 无效地址

macOS:如何正确安装 JavaFX 来运行 mqtt-spy?

docker - docker 容器如何监听所有 docker 事件?