Tag: node.js

Docker不会将文件更改从主机传播到容器

我打算configuration泊坞窗,以便当我修改主机上的一个文件的变化是在容器文件系统内传播。 你可以把这看作服务器端节点代码的热重载。 nodemon文件观察器应该重新启动服务器以响应文件更改。 但是,当我使用docker exec pokerspace_express_1 bash检查容器时,主机卷上的这些文件更改似乎没有反映在容器中,并检查修改后的文件,这些更改不会从容器传播到主机中。 Dockerfile FROM node:8 MAINTAINER therewillbecode # Create app directory WORKDIR src/app RUN npm install nodemon -g # Install app dependencies COPY package.json . # For npm@5 or later, copy package-lock.json as well # COPY package.json package-lock.json ./ RUN npm install CMD [ "npm", "start" ] 泊坞窗,compose.yml version: '2' […]

在将docker代码转换为容器代码方面需要帮助

我在逻辑上通过使用nodejs编写的nodejs应用程序容器代码引用在nodejs ansible-container创build代码。 我无法find更改下面的docker代码的确切语法。 有人能帮助我吗? RUN npm config set registry http://registry.npmjs.org/ – Set npm RUN npm config set proxy http://prod-proxy-out.xxxx.com:8080 – set proxy using npm RUN tar -xzf *.tgz – untar a existing tar file I tried these options, but they are not working Approach 1: shell: npm config set registry "{{ nodejs_npm_registry }}" when: nodejs_npm_registry […]

泊坞内的僵尸

我有一个docker容器,它运行node.js应用程序。 这个应用程序运行一个无头的实例。 一切工作正常,但如果我杀死铬实例,并检查运行的进程列表,我会看到2(实际上3 + 2猫进程)僵尸铬进程( 停止 )仍然在系统中。 我知道这个进程是一个subprocess(被杀死的父进程),这个进程没有完成正确的,并附加到init进程。 我试图直接杀死它 – 拒绝。 此外,我试图产卵铬与detached:true旗,并再次杀死所有的subprocess,当主铬接收到“退出”信号,无论如何ps -A | grep chrome ps -A | grep chrome显示了两个不存在给我。 有任何想法吗? UPD:感谢所有的帮助。 添加–init完全解决了我的问题。 使用另一个基本的图像也很好,但我决定这个方法不是必须的。 也可以在这里find根源的很好的描述

在Docker容器中公开一个React应用程序

我正在试图向当前所在的Docker容器公开一个反应应用程序。 我的Dockerfile成功地构build了我的映像,并在configuration的端口(8080)上运行我的应用程序。 然后我尝试将容器的端口8080绑定到主机的8080端口。 但是,当我访问8080端口的主机我的应用程序不在这里。 docker run -d -p 8080:8080 –name react-deployment-container react-deployment:dev 我有一个现有的节点应用程序已经暴露在运行在不同端口(3000)上的同一台主机上,所以我相信在运行Docker容器时这不是绑定端口的问题。 我认为这个问题可能是我试图在Webpackconfiguration中公开应用程序的方式。 Webpack完美地构build,但是看起来不可用于Docker容器。 webpack.config.js devServer: { contentBase: path.join(__dirname, "dist"), compress: true, host: '0.0.0.0', port: 8080 } 的package.json "scripts": { "start": "webpack-dev-server –host 0.0.0.0" }, 我已经在下面两个问题中推荐的configuration,没有运气。 如何让webpack dev服务器在端口80和0.0.0.0上运行以使其可公开访问? https://github.com/webpack/webpack-dev-server/issues/547 这个项目的回购在这里

Docker组成knex脚本错误

我的docker合成文件看起来像: version: '2' services: web: build: context: . image: myimage environment: – AWS_REGION=region – NODE_ENV=development command: bash -c "sleep 10 && npm run knex migrate:latest –knexfile src/knexfile.js" depends_on: – db db: image: mysql ports: – 3306:3306 environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_USER=root – MYSQL_PASSWORD=root – MYSQL_DATABASE=mydb volumes: – /var/lib 这个想法是,当我做一个docker组成 – 它组成了一个mysql,并做了链接,我的要求是,当myImage旋转起来,有一些我想要执行的移植。 试过2种方法: 如上所示在泊坞窗撰写文件中添加命令。 如果没有命令,旋转容器,然后打开容器,然后运行knex migrate命令。 […]

如何一次创build一个微服务实例运行脚本(使用docker)

我会保持简单。 我有相同的微服务的多个实例(使用dockers),这个微服务也负责同步一个caching。 每X次它从某个存储库中提取数据并将其存储在caching中。 问题是我只需要这个微服务的一个实例来完成这个工作,如果失败了,我需要另一个实现这个工作。 任何build议如何做到这一点简单? 顺便说一句,有没有一个选项来标记一些微服务docker实例,并让他做一些额外的工作? 谢谢!

在jenkinspipe道docker容器内的sudo权限

我使用声明性语法创build了一个Jenkinsfile来构build我的nodejs应用程序。 我曾经使用docker代理来构build,现在它给了我许可错误。 这是我的示例Jenkinsfile。 pipeline { agent { docker { image 'node:8.4' } } stages { stage('build') { steps { sh 'pwd' sh 'npm –version' sh 'npm –prefix ./Server install' } } } } Unhandled rejection Error: EACCES: permission denied, mkdir '/.npm' 我甚至尝试添加sudo命令 sh 'sudo npm –version' 但那么它不会让我发现错误。 我们怎么能从Jenkinsfile里面给Docker里面的权限,当前的unix用户是jenkins,我也添加到了sudoers中。 当我运行jenkins文件,我可以看到它通过jenkins用户和组使用-u选项docker。 docker run -t -d -u 109:116 […]

Docker – 用于开发环境的npm安装

我试图在Docker中为了开发目的而开发一个ReactJS项目,这个项目将在一个团队中共享。 然而,我很难理解这是如何工作的,因为我想大量共享我的app目录到容器中,但似乎我必须将package.json复制到容器中以便npm install ,因此运行nom run start 我的目录结构是: app/ src/ public/ node_modules/ package.json docker/ admin/ dockerfile docker-compose.yml dockerfile FROM node:7.8.0 WORKDIR /app RUN npm install EXPOSE 3000 CMD npm run start 泊坞窗,compose.yml version: '3' services: admin: build: context: ./docker/admin dockerfile: dockerfile image: project/admin volumes: – ./app:/app ports: – "3000:3000" 所以问题是:当dockerfile运行时, npm install失败,因为docker docker-compose共享卷尚未发生,所以认为没有package.json 。 所以这听起来像我必须将package.json复制到容器中,这对于开发而言并不理想。 此外,我相信你只能在与dockerfile相同的目录中COPY文件到容器中,这意味着我必须将dockerfile移动到项目的根目录。 […]

NGINX反向代理到docker容器运行web应用程序

在主机上,我有docker容器在端口4012,并在docker容器的Web应用程序运行在端口3000(0.0.0.0:4012->3000/tcp)所以访问webapp我只需要http://主机名: 4012和网页显示正常。 我希望能够去http:// hostname / metrics从我的浏览器运行相同的网页。 当我通过在主机上的nginx.conf中添加一个位置来完成这个工作时: 位置/指标{ proxy_pass http:// localhost:4012 ; } 所有加载的是index.html(我在http:// localhost:4012和http:// hostname / metrics上看到相同的html源代码),但是http:// hostname / metrics不会加载需要的javascript资源运行webapp。 从开发人员工具中,我看到非代理站点加载如下所示的资产: http:// hostname:4012 / assets / styles.css转到/ metrics的代理版本尝试加载,如下所示: http:// hostname / assets / styles.css的 它不会将/度量值附加到资产,就像它获取index.html …我在这里错过了什么? 如果这意味着什么,webapp将运行在监听器容器上的端口3000上的nodejs express服务器上。

使用NVM在容器上安装nodeJs版本

我有一个默认安装有NVM的docker集装箱。 当我尝试安装任何版本的节点,或者运行命令nvm ls-remote ,每次都无法连接到它的服务器。 消息是: 未find版本“6.11.2” – 尝试使用nvm ls-remote浏览可用的版本。 这个错误只发生在我join的这个networking中。 这是我的/etc/resolve.conf文件的内容: # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN search SAD.UM.AC.IR nameserver 8.8.8.8 nameserver 8.8.4.4 docker network ls命令的结果是: NETWORK ID NAME DRIVER SCOPE dc8cffbb2789 bridge bridge local 5efb2b5fb44e host […]