相关疑难解决方法(0)

如何使用docker-compose重新启动单个容器

我有一个docker-compose.yml包含4个容器的文件:redis,postgres,api,worker

在开发worker期间,我经常需要重新启动它才能应用更改.有没有什么好方法可以重新启动容器(例如worker)而无需重新启动其他容器?

docker docker-compose

277
推荐指数
10
解决办法
14万
查看次数

Npm安装找不到模块'semver'

我不能npm install在NodeJS中使用命令提示符.我在运行时遇到这些错误npm install:

module.js:339
    throw err;
    ^
Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l
ib\config\defaults.js:6:14)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
Run Code Online (Sandbox Code Playgroud)

请帮我

javascript node.js mean-stack

175
推荐指数
21
解决办法
11万
查看次数

向Docker添加卷,但排除子文件夹

假设我的主机上有一个Docker容器和一个文件夹/hostFolder.现在,如果我要对这个文件夹添加到多克尔容器的体积,那么我可以通过使用这样做ADDDockerfile或安装它作为一个音量.

到现在为止还挺好.

现在/hostFolder包含一个子文件夹/hostFolder/subFolder.

我想挂载/hostFolder到泊坞容器(无论是读写或只读并不重要,无论是对我的作品),但我希望把它列入/hostFolder/subFolder.我想排除这个,我也希望Docker容器能够对这个子文件夹进行更改,而不会在主机上更改它.

这可能吗?如果是这样,怎么样?

docker dockerfile

170
推荐指数
9
解决办法
6万
查看次数

在package.json中指定node_modules的路径

有没有办法将应用程序中的node_modules目录移动到bowerrc文件中,像bower那样/ vendor/node_modules?我认为它可以在package.json中指定,但我似乎无法找到解决方案.非常感谢您的帮助.

node.js npm

79
推荐指数
4
解决办法
9万
查看次数

在Docker容器中安装node_modules并将它们与host同步

我有在node_modulesDocker容器内安装并与主机同步的问题.我的Docker的版本是18.03.1-ce, build 9ee9f40和Docker Compose的版本一样1.21.2, build a133471.

docker-compose.yml看起来像:

# Frontend Container.
frontend:
  build: ./app/frontend
  volumes:
    - ./app/frontend:/usr/src/app
    - frontend-node-modules:/usr/src/app/node_modules
  ports:
    - 3000:3000
  environment:
    NODE_ENV: ${ENV}
  command: npm start

# Define all the external volumes.
volumes:
  frontend-node-modules: ~
Run Code Online (Sandbox Code Playgroud)

我的Dockerfile:

# Set the base image.
FROM node:10

# Create and define the working directory.
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# Install the application's dependencies.
COPY package.json ./
COPY package-lock.json ./
RUN npm install …
Run Code Online (Sandbox Code Playgroud)

npm node-modules docker docker-compose

34
推荐指数
5
解决办法
2万
查看次数

找不到在docker compose环境中运行的节点js app的模块

我很抱歉我的新手问题,但是我正在度过这个错误的可怕日子,我有一个Express应用程序,我试图在docker compose中运行它.我用过这个Dockerfile:

FROM mhart/alpine-node
RUN mkdir -p /usr/src/app
RUN chmod -R 777 /usr/src/app
WORKDIR /usr/src/app
RUN npm install node-gyp -g
RUN npm install nodemon -g
ENV NODE_ENV development
EXPOSE 3000
Run Code Online (Sandbox Code Playgroud)

这部分我的docker-compose文件:

backend:
    mem_limit: 100m
    build:
      context: .
      dockerfile: dockerfiles/node/Dockerfile
    command: npm start
    depends_on:
      - mongo
      - elasticsearch
    volumes:
      - ./backend/:/usr/src/app
    ports:
      - 3000:3000
    links:
      - "mongo:mongo"
      - "elasticsearch:elasticsearch"
Run Code Online (Sandbox Code Playgroud)

当我做docker-compose时,我收到这个错误:

backend_1        | npm info it worked if it ends with ok
backend_1        | npm info using npm@3.10.10
backend_1        | npm info …
Run Code Online (Sandbox Code Playgroud)

node.js npm docker docker-compose

11
推荐指数
4
解决办法
3万
查看次数

如何在安装卷时排除某些路径?

我想将所有内容挂载到当前目录中,除了/node_modules/client/bower_components.我目前必须手动挂载所有路径,如下所示:

app:
  build: .
  ports:
    - "3000:3000"
    - "35729:35729"
  links:
    - mongo
  volumes:
    - client/app:/www/app/client/app
    - client/assets:/www/app/client/assets
    - client/components:/www/app/client/components
    - server:/www/app/server
    ...
mongo:
  image: mongo
  ports:
    - "27017:27017"
Run Code Online (Sandbox Code Playgroud)

有什么方法我可以排除一些路径,例如!client/bower_components!node_modules

docker docker-compose

7
推荐指数
1
解决办法
4382
查看次数

使用本地npm依赖项设置docker nodejs应用程序

我们想开始容器化我们的应用程序,但是偶然发现了本地依赖项的一些问题。

我们只有一个git存储库,其中在“共享”文件夹下有许多节点程序包,以及需要这些程序包的应用程序。

所以说我们的文件夹结构如下:

src/
??? apps
?   ??? my_app
??? shared
    ??? shared_module
Run Code Online (Sandbox Code Playgroud)

在my_app package.json中,我们具有以下依赖关系:

{
  "dependencies": {
    "shared-module": "file:../../shared/shared_module"
  }
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是,因为我们要移动“ my_app”在容器中运行,所以需要npm安装我们的本地依赖项。

能做到吗?

node.js npm docker dockerfile

7
推荐指数
1
解决办法
1957
查看次数

在docker内部安装npm依赖项并从卷进行测试

我想使用Docker为一个简单的node.js项目创建开发环境。我想将项目的依赖项(它们都是npm软件包)安装在docker容器内(这样它们就不会碰到我的主机),并且仍然使用卷挂载我的代码。因此,容器应该能够node_modules在安装卷的路径中找到该文件夹,但是我不应该从主机上看到它。

这是我的Dockerfile:

FROM node:6


RUN mkdir /code
COPY package.json /code/package.json
WORKDIR /code

RUN npm install
Run Code Online (Sandbox Code Playgroud)

这是我的运行方式:

docker build --tag my-dev-env .

docker run --rm --interactive --tty --volume $(pwd):/code my-dev-env npm test
Run Code Online (Sandbox Code Playgroud)

这是我的package.json:

  {
    "private": true,
    "name": "my-project",
    "version": "0.0.0",
    "description": "My project",
    "scripts": {
      "test": "jasmine"
    },
    "devDependencies": {
      "jasmine": "2.4"
    },
    "license": "MIT"
  }
Run Code Online (Sandbox Code Playgroud)

它失败了,因为它找不到jasmine,因此它并不是真正的安装它:

> jasmine

sh: 1: jasmine: not found
Run Code Online (Sandbox Code Playgroud)

Docker可以实现我想要的功能吗?一种替代方法是全局安装软件包。我也试图npm install -g无济于事。

我使用的是Docker 1.12.1版本的Debian,版本23cf638。

development-environment dependency-management node.js npm docker

5
推荐指数
1
解决办法
5900
查看次数