Tag: JavaScript

NodeJS – 获取独特的设备指纹

我有一个节点/快速应用程序,我想从应用程序被调用的地方得到独特的设备指纹。 我遇到了一些着名的指纹开源软件包,如https://github.com/Valve/fingerprintjs2,但不幸的是,这个库支持浏览器指纹识别,并且不会为每个设备从应用程序被调用的地方生成唯一的指纹( https:// github.com/Valve/fingerprintjs2/issues/80#issuecomment-148302793 ) 我也尝试了clientjs https://clientjs.org/#Device-getDevice中的设备方法,但返回undefined( https://github.com/jackspirou/clientjs/issues/65 ),这又是一个客户端库。 我想要完成的是在服务器端获得唯一的设备指纹。 就像比如说考虑一个场景,其中应用程序是从2个设备完全相同的configuration(如types,供应商和型号)调用,在这种情况下,我应该得到2个独特的设备指纹。 在https://github.com/faisalman/ua-parser-js中的getDevice()似乎是非常接近我所寻找的,但不知道它是否会满足我的上述使用情况,即2设备与确切相同的configuration(例如2 iPhone 6),我想知道在这种情况下,types和供应商将是相同的,但不知道模型的价值。 任何想法或想法,请分享。 另外Augur( https://www.augur.io/ )是最推荐的设备识别软件,但不幸的是,它不再是一个开源的

如何获得所有的Docker容器,甚至那些没有运行的容器?

我试图实现一个button来启动所有停止的容器。 要做到这一点,我使用Dockerode ,我已经做了类似的事情,停止所有的容器,它的工作原理。 所以开始他们我使用相同的逻辑,但它看起来像docker.listContainers(function(err, containers) {}只返回正在运行的容器。 我怎样才能得到所有的容器? 这是我的代码,但对于这个问题没有用处: docker.listContainers(function(err, containers) { if (err) { } else { containers.forEach(function(containerInfo) { console.log(docker.getContainer(containerInfo.Id)); docker.getContainer(containerInfo.Id).start(function(err, data) { if (err) { } else { console.log(data); } }); }); } });

用Docker运行meteor应用程序

我试图创build一个Dockerfile来运行,并最终build立/运行我的meteor应用程序。 我使用https://github.com/meteorhacks/meteord和我的Dockerfile看起来像这样: FROM meteorhacks/meteord:devbuild 根据他们如何build立一切,应该是你需要做的。 当我运行docker build -t docker/my-app . 这是输出的样子: 我无法弄清楚什么是错误的,或者是否有更好的方法来做到这一点。 此外,如果任何人有任何其他的想法如何build立一个meteor应用程序的持续集成(触发构build和运行构build),我很高兴听到这些是什么(没有这是不是在银河主办)。

最小docker的图像做一些meteorunit testing

我正在docker容器中进行unit testing(对于我的CI工作stream程)。 因此,我已经用nodeJS(4.x)和meteorJS(1.5)构build了一个基于Ubuntu的映像。 我必须添加一个Ubuntu用户,因为根用户使meteor的一些问题,我必须设置语言环境来解决已知的问题与mongoDB。 在结果图像有2 GB的! 这对我来说是不可思议的。 只是做unit testing太多了。 我也尝试过使用一个阿尔卑斯山版本(node:4.8-alpine),但是由于我没有得到meteor test运行 我的命令来运行CI设置中的unit testing: TEST_CLIENT=0 meteor test –once –driver-package dispatch:mocha –allow-superuser 这是我正在使用的Dockerfile: FROM ubuntu:16.04 COPY package.json ./ RUN apt-get update -y && \ apt-get install -yqq \ python \ build-essential \ apt-transport-https \ ca-certificates \ curl \ locales \ nodejs \ npm \ nodejs-legacy \ sudo […]

如何根据Docker环境variablesselect要复制的文件?

我的问题是,我有一些JavaScript文件中硬编码的URL。 它们是特定于我部署泊坞窗镜像的环境。 这是我需要的不同url的一个例子。 对于live ENV : export const BLUE_SERVICE = 'https://myliveserver/api/blueservice'; export const RED_SERVICE = 'https://myliveserver/api/redservice'; 对于release ENV : export const BLUE_SERVICE = 'https://myreleaseserver/api/blueservice'; export const RED_SERVICE = 'https://myreleaseserver/api/redservice'; 我的想法是有两个版本的文件。 然后,我会根据我的dockerfile中的ENV VARIABLE复制一个或另一个。 顺便说一下,我已经有了一个称为STAGE的ENV VARIABLE 也许还有其他(更好的)解决scheme来做到这一点。 任何想法?

无法连接到数据库:错误getaddrinfo ENOTFOUND db db:3306

文件结构: APP ├─ API │ └─ Dockerfile.yml ├─ db │ └─ storage └─ docker-compose.yml 我还没有数据库的地方: Dockerfile.yml: # Base node image FROM node:8.2.1 # ON DOCKER CONTAINER WORKDIR /API # Install nodemon to monitor changes to the app. RUN npm install -g nodemon COPY package.json /API/package.json RUN npm install && npm ls RUN mv /API/node_modules /node_modules […]

为什么不能在Docker-compose中连接到另一个容器中的Web应用程序?

我有一个至less有两个tomcat容器的docker撰写文件:(抬头,这不是一个有效的docker-compose,只有一个模板) version: "3" services: restapidependencies: xxxxxx restapi: image: tomcat:8.0-jre8 depends_on: – restapidependencies ports: – "8888:80" command: catalina.sh run web: image: tomcat:8.0-jre8 depends_on: – coreservices ports: – "7777:80" command: catalina.sh run 一个是REST风格的API,另一个是构build在JavaScript(angularJS)上的Web应用程序。 还有一些restapi依赖的其他服务,(数据库,redis等)。 其余的api使用docker-compose.yaml中定义的服务的名称成功连接到它的依赖关系,但是, web服务中的应用程序无法连接到restapi服务。 也就是说,当我将restapi docker exec放入web容器时,我可以使用curl成功地向restapi发出请求。 有没有一个JavaScript应用程序将无法连接到相同的docker组成的docker容器的情况。 PS:我没有开发运行web的应用程序,所以我对它可能做的任何特殊的知识都是有限的,我的前端开发人员给了我一个解释:“网页应用程序在浏览器中运行”,这是有道理的。 一些想法:这是否意味着Web应用程序无法访问本地主机? 即使是这样,docker compose创build了一个容器networking,所以在同一个应用程序中没有共享本地主机,从技术上来说, web正在调用一个完全不同的ip,而不是本地主机。

无法通过Nodejs连接到Docker内部的Tarantool容器

我想用这个代码连接到tarantool cotainer: import TarantoolConnection from 'tarantool-driver' let connection = new TarantoolConnection('192.168.99.100:3301'); connection.ping().then((res) => { console.log(res); }); 在此之前,我开始容器: docker run -p 3301:3301 -d tarantool/tarantool:1.6 但结果我什么也得不到。 如果我尝试为这个空间创build空间或\和索引: connection.eval("box.schema.space.create('myspace', {if_not_exists=true, temporary=true})").then((res) => { console.log(res); }); 我得到这个错误: UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):错误:此套接字已closures 要么: UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:2):错误:连接将被销毁或已经销毁,创build另一个 正如我从错误中看到,所需的套接字已经closures,但我不明白为什么。 塔兰图司机的版本: "tarantool-driver": "2.0.5", 我该如何解决它?

Docker节点:无法find入口点

我有以下Dockerfile_dev泊坞窗文件: FROM node:alpine MAINTAINER "Desyllas Dimitrios" ENV NEO4J_HOST="" ENV NEO4J_USER="" ENV NEO4J_PASSWORD="" ENV MONGO_CONNECTION_STRING="" ENV LOGS_DIR="/var/log/data_map" COPY ./docker_scripts/entrypoint_dev.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh &&\ chown root:root /usr/local/bin/entrypoint.sh &&\ mkdir -p /opt/map &&\ mkdir -p /var/log/data_map &&\ chmod 0666 /var/log/data_map EXPOSE 7474 VOLUME /var/log/data_map VOLUME /opt/map WORKDIR /opt/map ENTRYPOINT ['/usr/local/bin/entrypoint.sh'] 我有以下的入口点: #!/bin/sh cd /opt/map npm install […]

如何在js脚本中读取docker环境variables?

我有一个节点泊坞窗容器上托pipe的反应应用程序。 我运行它并将其传递给一个环境variables docker run -t -e "ADMIN_HOST_ENV=http://myapp.app:443/api" -p 3000:3000 "myapp" 我怎样才能得到应用程序中的“ADMIN_HOST_ENV”环境variables?