我有一个具有以下服务的应用程序:
web/
- 在端口5000上保存并运行python 3 flask Web服务器.使用sqlite3.worker/
- 有一个index.js
文件,它是队列的工作者.Web服务器使用json API over port与此队列交互9730
.工人使用redis进行存储.工作人员还将数据本地存储在文件夹中worker/images/
现在这个问题只涉及到了worker
.
worker/Dockerfile
FROM node:0.12
WORKDIR /worker
COPY package.json /worker/
RUN npm install
COPY . /worker/
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
redis:
image: redis
worker:
build: ./worker
command: npm start
ports:
- "9730:9730"
volumes:
- worker/:/worker/
links:
- redis
Run Code Online (Sandbox Code Playgroud)
当我运行时docker-compose build
,一切都按预期工作,所有npm模块都/worker/node_modules
按照我的预期安装.
npm WARN package.json unfold@1.0.0 No README data
> phantomjs@1.9.2-6 install /worker/node_modules/pageres/node_modules/screenshot-stream/node_modules/phantom-bridge/node_modules/phantomjs
> node install.js
<snip>
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时docker-compose up
,我看到了这个错误:
worker_1 …
Run Code Online (Sandbox Code Playgroud) 我想知道在我们使用docker开发应用程序时以及当我们只在本地docker容器内部使用node_modules时,是否可以配置VS Code IntelliSense?
提前致谢!
我是Docker的新手,我想在我的计算机上映射node_modules文件夹(用于调试目的).
这是我的docker-compose.yml
web:
build: .
ports:
- "3000:3000"
links:
- db
environment:
PORT: 3000
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
db:
image: mongo:3.3
ports:
- "27017:27017"
command: "--smallfiles --logpath=/dev/null"
Run Code Online (Sandbox Code Playgroud)
我在使用Docker for Mac.当我运行docker-compose up -d
所有正确,但它在我的计算机上创建一个node_modules文件夹,但它是空的.我进入容器的bash和ls node_modules,所有包都在那里.
如何在计算机上获取容器上的内容呢?
谢谢
有一些类似的问题,但他们没有回答为什么node_modules
docker 在 repo 中创建空目录,即使 dockerfile 设置为在容器中保存 node_modules?
我很想知道为什么在主机上创建目录为空,假设纱线已经在容器内安装了包node_modules
以及如何避免它。
## Dockerfile
FROM node:8.11.4-alpine
RUN apk update && apk add yarn
RUN yarn global add nodemon
WORKDIR /usr/app
COPY package.json yarn.lock /usr/app/
RUN yarn
EXPOSE 3000
Run Code Online (Sandbox Code Playgroud)
## docker-compose.yml
version: "3.2"
services:
app:
build:
context: .
dockerfile: Dockerfile
command: nodemon index.js
volumes:
- .:/usr/app
- /usr/app/node_modules
ports:
- "3000:3000"
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的节点应用程序停靠.我当前的应用程序是一个带有postgresql的nodejs express服务器.ExpressJS使用node-sass-middleware来处理sass资产.当我在我的OSX机器上本地运行node和postgresql时,一切正常.当我尝试运行应用程序时,docker-compose
我收到"丢失绑定错误"
这是我的Dockerfile:
FROM node:7.2.1
RUN apt-get update -qq && apt-get install -y build-essential
RUN apt-get install -y libpq-dev postgresql-client
ENV APP_HOME /my_app
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
ADD package.json .
RUN npm install
RUN npm rebuild node-sass
ADD . .
CMD [ "npm", "start" ]
EXPOSE 3000
Run Code Online (Sandbox Code Playgroud)
这是我的docker-compose.yml
档案:
version: '2'
services:
db:
image: postgres:9.6.1
ports:
- '5432:5432'
web:
build: . # use the Dockerfile next to this file
volumes:
- .:/my_app
ports:
- "3000:3000"
depends_on: …
Run Code Online (Sandbox Code Playgroud) 我有一些我无法解决的情况。angular 5应用程序开发。复制package.json的docker文件,并在构建npm期间安装node_modules。而且我希望那些node_modules在主机上可见,以便开发人员可以在/ src文件夹上舒适地工作。应用程序从容器工作,但是在编码时我无法使用自动完成功能,因为模块不可用。
FROM node:10 as node
# FROM node:alpine as node
RUN mkdir -p /app
WORKDIR /app
COPY . /app/
RUN npm install -g @angular/cli@~6.0.3
# RUN yarn --pure-lockfile
# RUN yarn install --no-cache --frozen-lockfile --no-bin-links
RUN npm install
EXPOSE 4200
CMD ng serve --host 0.0.0.0 --disable-host-check --watch --poll 1000
Run Code Online (Sandbox Code Playgroud)
docker-compose.yaml
version: '3'
services:
frontend-service:
build: ./frontend
volumes:
- ./frontend:/app
- /app/node_modules
ports:
- 4200:4200
Run Code Online (Sandbox Code Playgroud)
node-modules dockerfile docker-compose docker-volume angular
docker ×4
node.js ×4
node-modules ×2
angular ×1
dockerfile ×1
intellisense ×1
javascript ×1
node-sass ×1
npm ×1
sass ×1
ubuntu-14.04 ×1