Tag: node.js

在使用docker-sync时合并容器文件

我正在使用docker-sync加速我的node.js应用程序上的开发环境文件更新。 现在我试图通过将package.json移动到映像并在创build映像时运行npm install来cachingnpm install命令。 Dockerfile: ADD ./package.json /app/user/ RUN npm install 然后,我使用以下configuration进行docker-sync: 泊坞窗,sync.yml version: "2" options: verbose: true syncs: appcode-rsync-sync: src: './' sync_host_ip: 'auto' sync_host_port: 10872 sync_strategy: 'rsync' sync_excludes: [ 'public/lib/', 'public/dist/', 'node_modules/'] 这里是docker-compose.yml : services: web: build: . ports: – "3000:3000" volumes: – appcode-rsync-sync:/app/user:nocopy command: grunt volumes: appcode-rsync-sync: external: true 问题是npm install将所有必需的软件包安装在node_modules , public_lib […]

我可以在nodemon中使用watch,或者在docker中使用分区驱动器中的pm2?

我正在使用Docker for Windows和共享驱动器。 在linux容器中,使用nodemon设置我的express服务器,并且我从Windows编辑我的源文件。 但文件更改后,手表不起作用。 PM2是一样的。 我如何使用手表事件?

在GitlabCI中使用Docker,MongoDB

在我的Node.js项目中,我使用dotenv包来处理configuration。 我的.env文件是这样的 NODE_ENV = development MONGO_URL = MY_MONGO_URL 所以在我的configuration文件导出我的数据库stringurl: 'use strict'; require('dotenv').config(); module.exports = process.env.MONGO_URL; 后来我想整合Gitlab CI,感到困惑,如何configuration它来创build一个图像,并为我生成DBstringurl的环境variables。 目前我的.gitlab-ci.yml是这样的: image: node:6.11.0 variables: NODE_ENV: test services: mongodb: 3.2.10 before_script: – npm install cache: paths: – node_modules/ all_test: script: – npm test 你能指导我如何configuration和build立这种情况? 谢谢

Docker正确的redirect链接

我有Dockerfile: FROM cloudron/base:0.10.0 ENV PATH /usr/local/node-6.9.5/bin:$PATH WORKDIR /tmp COPY package.json /tmp/ RUN npm config set registry http://registry.npmjs.org/ && npm install WORKDIR /usr/src/app COPY . /usr/src/app RUN cp -a /tmp/node_modules /usr/src/app RUN npm run build EXPOSE 8000 CMD [ "npm", "run", "start:production" ] 如果我运行这个: docker run -p 8000:8000 -t somename/appname 然后去http://localhost:8000工作正常,但如果我想要去http://localhost:8000/about我得到错误: Cannot GET /about 我应该怎么做才能使它configuration好? 当然,我的反应的应用程序,使用这种链接在开发开始工作正常。 […]

如何在Docker容器中forksubprocess

我试图用execPath,execArgv选项来做到这一点 。 subprocess正在运行,但是我有一个subprocess的问题。 process.send()函数没有被定义,我不确定,但它可能是一个与容器内的孩子的init IPC通道的问题。 parent.js const fork = require('child_process').fork; const child = fork('child.js', { execPath: 'docker', execArgv: ['run', '-v', 'C:/Users/MIS/Desktop/ChildProcess/:/usr/src/app', '-w', '/usr/src/app','–ipc=host','-it','–rm', 'node:6.10.3-alpine', 'node'], stdio: [0, 1, 2, 'ipc'] }); const data = { age: 15 }; child.on('message', (m) => { console.log('PARENT got message:', m); }); child.send(data); Child.js process.on('message', (m) => { m.age = […]

实用程序使用docker而不是经典的设置(wamp,mamp,lamp)

我有个问题。 我是一个networking开发5年以来,我在本地开发与经典的设置,即在操作系统下的wamp / mamp / lamp,我也使用git。 为了发送源代码,我将代码推送到git服务器,并从生产服务器上拉出来。 我有一个实用工具,让我的经典设置docker,如果我有一个实用程序,你可以告诉我什么,因为在阅读了很多文章在互联网上,我已经看到如何设置一个容器,但我不明白我的:/ PS:如果我的英文不好,我很抱歉,我是法文,我的英文不完美。 先谢谢你。 最好的祝福

我可以使用重新启动泊坞窗而不是在容器中重新启动应用程序?

我在Docker容器中运行应用程序。 我没有将应用程序的代码捆绑到图像中,而是使用-v将代码映射到容器中,以便更方便地升级代码。 我曾经使用pm2来pipe理进程,当我升级代码时,我使用docker exec -it app bash进入容器并运行pm2 restart 。 但是现在我不再使用pm2了,只需运行node app.js 。 当我升级代码,需要重新启动应用程序时,我运行docker restart直接docker restart启动容器。 如果docker重启有任何副作用? 还是有更好的方法来重新启动一个节点的应用程序?

在Docker中以非root用户身份运行节点应用程序

几天之后,我一直在尝试使用docker-compose作为Docker容器内的非root用户运行节点应用程序。 无论我尝试什么,我都会得到相同的EACCES: permission denied错误,更具体地说,它似乎是启动脚本的一个问题: Error: EACCES: permission denied, open '/home/dev/learn-node/public/dist/App.bundle.js' npm info lifecycle dang-thats-delicious@0.0.0~assets: Failed to exec assets script 当我简单地注释掉Dockerfile中的USER dev行并保持为root时,我没有看到任何这些问题。 我已经尝试了许多不同的命令在我的Dockerfile中,但切换到dev用户似乎导致的问题。 这就是我的package.json脚本部分的样子 "scripts": { "prod": "node ./start.js", "watch": "nodemon ./start.js –ignore public/", "start": "concurrently \"npm run watch\" \"npm run assets\" –names \"💻,📦\" –prefix name", "assets": "webpack -w –display-max-modules 0", "sample": "node ./data/load-sample-data.js", "blowitallaway": "node […]

Docker的SSHFS挂载容器/节点服务器需要访问外部服务器上的文件

我如何执行一个SSHFS挂载在不同的服务器上挂载一个卷到我的docker image / docker容器中? docker容器包含一个简单的NodeJS Web服务器。 这个网页显示图片。 我必须从不同IP的不同服务器获取这些图像文件。 到目前为止,我没有一个docker集装箱。 为此我有一个CronJob执行SSHFS挂载到我的系统。 然后NodeJS服务器有文件,我能够显示图片。 现在我必须对docker集装箱做同样的事情。 我想有容器内的容器,但我不认为它与docker run -v /path/ […]因为这将需要在容器所在的主机上有文件在。 是否有可能将SSHFS装入到docker docker run命令或Dockerfile中? 还有其他的select吗? ~ cat Dockerfile FROM node:alpine RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY package.json /usr/src/app/ RUN npm install COPY . /usr/src/app EXPOSE 80 CMD [ "npm", "start" ]

访问docker容器外的节点模块的数据量

我有一个node.js web服务的docker设置,为这样的节点模块创build一个数据卷: volumes: – ./service:/usr/src/service – /usr/src/service/node_modules 数据量的解决scheme工作正常。 但是使用数据卷时, node_modules在我的主机 ( 不是容器 )中是不可访问或可见的,这会产生其他的限制。 例如:我不能在web-storm运行testing,因为他们期望node_modules存在。 除了使用数据卷挂载节点模块,还有其他解决scheme,还允许在主机上访问它们吗? docker文件如下所示: FROM node:6.3.1-slim ARG NPM_TOKEN ARG service ENV NODE_ENV development RUN apt-get update && apt-get -y install build-essential git-core python-dev vim # use nodemon for development RUN npm install –global nodemon COPY .npmrc /root/.npmrc RUN mkdir -p /usr/src/$service RUN mkdir […]