Tag: node.js

如何在Nodejs中读取环境variables?

我正在尝试通过docker撰写环境文件。 我的问题是我的代码只读取variables值的第一行。 我的test.env NODE_ENV=development ## Not the actual key ## RSA_PUBLIC=—–BEGIN PUBLIC KEY—– CIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyRaUPVDIx3e1d/qadcNc D5TfmAfjCKlTajQPEitF8tNtQKRQc9yZqJjkNwtvctlxmkBmfot5dPqW/nAZhfse AAY5AKnAPAHrOLrzrGWvXE1NkjuONZq9cTqWludyZp7jH0md1q/D7shZMwL2hEee gaaM5CWH7nIZ6CASDA9K46NJYyoXw4/sZsUtuuKbUP3W1LlJcaBFIpRRKkv2dEdd ddqN8yHjkjKNtHi0UtRCjxA6dOuUdMvTiTHiycGwoC6sap0THF4lWHBZb/GXFaeD adce7iDq5bhbMNT3YfXHlq3MMMJSCJltnVS7DArij/Xf6vF/6chvlI4S9iIZNped FEEDAAEE —–END PUBLIC KEY—– 我的docker-compose web: build: . env_file: – test.env //more 我能够读取我的app.js文件中的NODE_ENV console.log(process.env.NODE_ENV) ==>输出development 但是console.log(process.env.RSA_PUBLIC) ==>只输出—–BEGIN PUBLIC KEY—– 这是关键的第一行。 并使我的jwt令牌validation失败 PEM_read_bio_PUBKEY failed 我不知道如何解决这个问题。 任何人都可以帮助我吗? 非常感谢!

如果我在Docker容器中运行Node.js,是否需要反向代理?

我已经阅读了一些推荐在Node.js应用程序之前使用反向代理(比如nginx )的文章(就像那个: 在Node.JS之前的反向代理的优点 )。 比起运行Node.js本身并暴露它更好(至less在安全性方面)。 但是,在Docker容器中运行Node.JS应用程序应该可以防止安全问题(因为应用程序在容器中运行,并与主机系统隔离)。 所以,我的问题是:在Docker容器中运行Node.js应用程序时使用反向代理是否有好处? 如果是的话,它如何改善我的申请?

虽然使用与集线器中相同的Dockerfile,但重buildDocker镜像失败

我想自己build立这个docker形象:chrisgeorge / nightmare-headless( https://hub.docker.com/r/chrisgeorge/nightmare-headless/~/dockerfile/ ) 所以我使用了相同的Dockerfile。 Dockerfile FROM node:slim RUN apt-get update && \ apt-get install -y \ xvfb \ x11-xkb-utils \ xfonts-100dpi \ xfonts-75dpi \ xfonts-scalable \ xfonts-cyrillic \ x11-apps \ clang \ libdbus-1-dev \ libgtk2.0-dev \ libnotify-dev \ libgnome-keyring-dev \ libgconf2-dev \ libasound2-dev \ libcap-dev \ libcups2-dev \ libxtst-dev \ libxss1 \ libnss3-dev […]

集成testing与Docker和Bitbucketstream水线

我想运行我的集成testing作为Bitbucketpipe线 CI的一部分。 我的集成testingtesting了一个运行在空MongoDB数据库上的NodeJS后端。 为了实现这个function,我想创build一个Docker镜像,Bitbucketpipe道可以从Docker镜像库中获取。 我的bitbucket-pipelines.yml将是这样的: image: <my image with nodejs and a mongodb linked to it> pipelines: default: – step: script: – npm test 现在我只需要创build一个configuration正确的nodejs和mongodb nodejs 。 我可以通过创build以下docker-compose.yml文件来构build环境: version: "2" services: web: build: . volumes: – ./:/app ports: – "3000:3000" – "9090:8080" links: – mongo mongo: image: mongo ports: – "27018:27017" 我的Dockerfile: FROM node:7.9 RUN […]

使用交互式shell创build新的容器

我想用Node.js创build一个新的容器,并在其中启动一个bash-shell来交互validation。 所以我做docker run node /bin/bash但它立即退出。 我做错了什么?

Dockerode使用节点,但不通过Webpack

我正在尝试编写一个可以启动Docker容器的Web应用程序。 因此,我正在使用dockerode模块。 短模块看起来像这样: //index.js var Docker = require('dockerode'); var docker = new Docker({socketPath: '/var/run/docker.sock'}); docker.buildImage({ /* Building image over here… */ }); 用这样的节点运行这个JavaScript文件: node index.js 工作得很好。 我的本地Docker安装将构build一个新的图像,然后创build一个新的容器。 最后,这个容器将被启动。 但是,现在我试图通过使用Webpack将此模块添加到Web应用程序。 但现在的问题是:当使用webpack.config.js属性 target: 'web' Webpack成功地build立了这个文件,但是当打开网站时我收到这个问题: Uncaught TypeError: stat is not a function at loop (gen.js:27528) at onnextentry (gen.js:27640) at Object.exports.pack (gen.js:27643) at Docker.buildImage (gen.js:22180) at buildImage (gen.js:21892) […]

在本地 – 在Nginx容器上使用代理到Node Express容器的React App

这应该是非常简单,但看起来像我失去了一些非常基本的东西,任何帮助将不胜感激。 我在本地MacBook上运行POC。 基本的想法是使用create-react-app build脚本build React应用create-react-app并将其部署到本地的nginx-alpine容器中。 我能够做到这一点。 我能够访问index.html,看看我应该看到什么时候客户端容器正在运行。 我有一个运行在同一台本地机器上的node-express后端,它使用一个node docker镜像站立起来。 我能够设置这个,我能够击中这些图像从我的浏览器提供的端点。 问题是,我内部的api这些高端的端点叫做什么。 我已经在我的nginx.conf设置了proxy_pass ,并尝试了很多方法来设置它。 没有一个工作。 我已经尝试使用localhost ,累了使用127.0.0.1 ,尝试使用docker容器的IP地址,尝试使用docker service name ,尝试将其设置为我的nginx.conf upstream ,试图直接在proxy_pass使用后端URL。 没有任何工作 这里是代码… http://localhost/ – >加载用户界面 http://localhost:3001/features – >返回我需要在UI上使用的JSON负载 http://localhost/admin – >是我的用户界面上的一个组件,它使用fetch API来加载path/features 。 nginx.conf upstream app_servers { server localhost:3001; } # Configuration for the server server { # Running port listen 80; root […]

在docker中只写入源文件的可写node_modules

我的webapp/Dockerfile看起来像这样: FROM project_base-container EXPOSE 9100 # … # Using copy instead of mount, since we need to write in sub-directories like node_modules etc. COPY . /usr/src/app/webapp CMD ["bash", "webapp/scripts/build_and_run.sh", "setup_deps_and_run_app"] 我想让应用程序能够读取源代码,并写入到像node_modules这样的子文件夹中,但是我不希望这些更改来自我的本地机器。 因此,我有两个select: 在node install更改–prefix='/tmp' ,并将src node install为ro 复制src,然后容器可以写任何想要的地方。 解决scheme1破坏浩劫,因为现在我必须复制/链接像package.json,index.html等所有文件的前缀位置。 解决scheme2就是我上面所做的。 当我使用COPY时,一切都很好。 但是现在的问题是,在源代码发生变化之后,我想每次更新映像中的源代码: sudo docker-compose down && sudo docker-compose up –build -d 但是COPY命令是由dockercaching的,即使在文件改变之后也不会被更新。 TL; DR:我有一个src文件夹'webapp',我想从主机挂载为readonly,但我的应用程序想写入子文件夹'webapp / […]

将Docker容器中的nodejs App连接到Docker Swarm中的另一个docker容器中的mongodb

我已经在下面设置了docker stack(请参阅docker-compose.yml)。 它有2个服务: – 在一个(或多个)容器中运行的nodejs(回送)服务。 – 在另一个容器中运行的一个mongodb。 在我的节点应用程序中使用什么HOST来允许它连接到另一个容器中的mongodb(当前位于同一个节点上,但如果我设置了一个群集,则可能位于不同的节点上)。 我曾尝试过桥,webnet,主机IP等,但没有运气。 注意:我将主机通过环境variables“MONGODB_SERVICE_SERVICE_HOST”传递到nodejs应用程序。 提前致谢!! version: "3" services: web: image: myaccount/loopback-app:latest deploy: replicas: 2 restart_policy: condition: on-failure ports: – "8060:3000" environment: MONGODB_SERVICE_SERVICE_HOST: "webnet" depends_on: – mongo networks: – webnet mongo-database: image: mongo ports: – "27017:27017" volumes: – "/Users/jason/workspace/mongodb/db:/data/db" deploy: placement: constraints: [node.role == manager] networks: – webnet networks: webnet:

通过Docker运行简单的nodejs时,无法findHelloWorld.js

我完全从这个chpater跟随教程: https ://www.tutorialspoint.com/docker/docker_setting_nodejs.htm 所有玩法都很好,但是在尝试执行时遇到错误: sudo docker run -it –rm –name HellowWorld -v "$PWD":/usr/src/app -w /home/will/Documents/DockerTests/NodeTest node node HelloWorld.js 我得到了我的HelloWorld.js在运行此命令的文件夹下。 例外是: module.js:491 throw err; ^ Error: Cannot find module '/home/will/Documents/DockerTests/NodeTest/HelloWorld.js' at Function.Module._resolveFilename (module.js:489:15) at Function.Module._load (module.js:439:25) at Function.Module.runMain (module.js:609:10) at startup (bootstrap_node.js:158:16) at bootstrap_node.js:598:3 will@will-virtual-machine:~/Documents/DockerTests/NodeTest$ 感谢您的审查.. 更新:我试着运行一个不同的命令: sudo docker run -it –rm –name HellowWorld -v "$PWD":/usr/src/app […]