How to setup pm2-logrotate for docker with nodejs running pm2? - docker

I have the docker image from keymetrics/pm2:8-jessie and running my nodejs application well with pm2. I tried to add pm2-logrotate for sizing the log with date. I added the following in my Dockerfile. The module pm2-logrotate can be started but the Target PID is null. Anyone can help please?
FROM keymetrics/pm2:8-jessie
RUN npm install
RUN pm2 install pm2-logrotate
RUN pm2 set pm2-logrotate:retain 90
RUN pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
RUN pm2 set pm2-logrotate:max_size 10M
RUN pm2 set pm2-logrotate:rotateInterval 0 0 * * *
RUN pm2 set pm2-logrotate:rotateModule true
RUN pm2 set pm2-logrotate:workerInterval 10
ENV NODE_ENV=$buildenv
ENV NPM_CONFIG_LOGLEVEL warn
CMD ["sh", "-c", "pm2-runtime start pm2.${NODE_ENV}.config.js"]
pm2 ls
┌──────────────┬────┬─────────┬─────────┬─────┬────────┬─────────┬────────┬─────┬────────────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────────┼────┼─────────┼─────────┼─────┼────────┼─────────┼────────┼─────┼────────────┼──────┼──────────┤
│ app_server │ 1 │ 1.0.0 │ cluster │ 150 │ online │ 1 │ 2h │ 0% │ 104.4 MB │ root │ disabled │
└──────────────┴────┴─────────┴─────────┴─────┴────────┴─────────┴────────┴─────┴────────────┴──────┴──────────┘
Module
┌───────────────┬────┬─────────┬─────┬────────┬─────────┬─────┬───────────┬──────┐
│ Module │ id │ version │ pid │ status │ restart │ cpu │ memory │ user │
├───────────────┼────┼─────────┼─────┼────────┼─────────┼─────┼───────────┼──────┤
│ pm2-logrotate │ 2 │ 2.7.0 │ 205 │ online │ 0 │ 0% │ 44.5 MB │ root │
└───────────────┴────┴─────────┴─────┴────────┴─────────┴─────┴───────────┴──────┘

One reason is as pm2 logrotate is not the primary process of the Docker container, but a managed process by pm2, so you can verify this behaviour by stopping main process that is defined pm2.${NODE_ENV}.config.js your container will die no matter if pm2-logrotate is running.
Also, I do not think it should be null, it should be something like
pm2 ls
┌─────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1 │ www │ default │ 0.0.0 │ fork │ 26 │ 13s │ 0 │ online │ 0% │ 40.3mb │ root │ disabled │
└─────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Module
┌────┬───────────────────────────────────────┬────────────────────┬───────┬──────────┬──────┬──────────┬──────────┬──────────┐
│ id │ module │ version │ pid │ status │ ↺ │ cpu │ mem │ user │
├────┼───────────────────────────────────────┼────────────────────┼───────┼──────────┼──────┼──────────┼──────────┼──────────┤
│ 0 │ pm2-logrotate │ 2.7.0 │ 17 │ online │ 0 │ 0.5% │ 43.1mb │ root │
└────┴───────────────────────────────────────┴────────────────────┴───────┴──────────┴──────┴──────────┴──────────┴──────────┘
Also will suggest to use the alpine base image as the above image seem very heavy, the below image is 150MB while the above image is arround 1GB.
FROM node:alpine
RUN npm install pm2 -g
RUN npm install
RUN pm2 install pm2-logrotate
RUN pm2 set pm2-logrotate:retain 90
RUN pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
RUN pm2 set pm2-logrotate:max_size 10M
RUN pm2 set pm2-logrotate:rotateInterval 0 0 * * *
RUN pm2 set pm2-logrotate:rotateModule true
RUN pm2 set pm2-logrotate:workerInterval 10
ENV NODE_ENV=$buildenv
ENV NPM_CONFIG_LOGLEVEL warn
WORKDIR /app
COPY . /app
CMD ["sh", "-c", "pm2-runtime start confi"]

Related

how to reduce clickhouse memory usage or release memory manually

i'm new about clickhouse, i have about 3 billion data in clickhouse 64G ram.
INSERT INTO a_table SELECT * FORM src_table WHERE create_time >= ? AND create_time <= ?
When executing this sql, code 241 is randomly returned
SELECT
*,
formatReadableSize(value) AS b
FROM system.asynchronous_metrics
WHERE metric LIKE '%em%'
ORDER BY b DESC
┌─metric───────────────────────────────────┬─────────────────value─┬─b──────────┐
│ FilesystemLogsPathTotalBytes │ 105150078976 │ 97.93 GiB │
│ FilesystemMainPathUsedBytes │ 889244708864 │ 828.17 GiB │
│ MemoryVirtual │ 86271520768 │ 80.35 GiB │
│ MemoryDataAndStack │ 81446019072 │ 75.85 GiB │
│ jemalloc.epoch │ 7976 │ 7.79 KiB │
│ OSMemoryFreePlusCached │ 7745302528 │ 7.21 GiB │
│ OSMemoryTotal │ 66174210048 │ 61.63 GiB │
│ OSMemoryAvailable │ 6853541888 │ 6.38 GiB │
│ FilesystemLogsPathTotalINodes │ 6553600 │ 6.25 MiB │
│ FilesystemLogsPathAvailableINodes │ 6397780 │ 6.10 MiB │
│ jemalloc.arenas.all.dirty_purged │ 625232220 │ 596.27 MiB │
│ FilesystemLogsPathAvailableBytes │ 61849862144 │ 57.60 GiB │
│ jemalloc.mapped │ 58842886144 │ 54.80 GiB │
│ jemalloc.resident │ 58749423616 │ 54.71 GiB │
│ MemoryResident │ 58665074688 │ 54.64 GiB │
│ jemalloc.active │ 58473361408 │ 54.46 GiB │
│ jemalloc.allocated │ 57016602472 │ 53.10 GiB │
│ jemalloc.arenas.all.muzzy_purged │ 483548433 │ 461.15 MiB │
│ FilesystemLogsPathUsedBytes │ 43300216832 │ 40.33 GiB │
│ OSMemoryCached │ 4472168448 │ 4.17 GiB │
│ MemoryCode │ 366669824 │ 349.68 MiB │
│ jemalloc.arenas.all.pdirty │ 3830 │ 3.74 KiB │
│ OSMemoryFreeWithoutCached │ 3273134080 │ 3.05 GiB │
│ jemalloc.metadata │ 262799792 │ 250.63 MiB │
│ MemoryShared │ 253267968 │ 241.54 MiB │
│ FilesystemMainPathUsedINodes │ 215867 │ 210.81 KiB │
│ FilesystemMainPathTotalBytes │ 3170529116160 │ 2.88 TiB │
│ FilesystemMainPathAvailableBytes │ 2281284407296 │ 2.07 TiB │
│ FilesystemMainPathTotalINodes │ 196608000 │ 187.50 MiB │
│ FilesystemMainPathAvailableINodes │ 196392133 │ 187.29 MiB │
│ jemalloc.retained │ 19604230144 │ 18.26 GiB │
│ FilesystemLogsPathUsedINodes │ 155820 │ 152.17 KiB │
│ jemalloc.arenas.all.pactive │ 14275723 │ 13.61 MiB │
│ jemalloc.arenas.all.pmuzzy │ 1394 │ 1.36 KiB │
└──────────────────────────────────────────┴───────────────────────┴────────────┘
Can I release memory by manually ?

Jumping around of the dockerfile/docker-compose context

My current projects structure looks something like that:
/home/some/project
│ .credentials_dev
│ .credentials_prod
│ ca.cer
│ docker-compose.yml
│ Dockerfile
│ init.sql
│ nginx_dev.conf
│ nginx_prod.conf
│
├───src
└───users
Compose makes four containers, two of them are dev & prod version of application, who uses appropriate prod & dev files. As you can see, following structure root is little overloaded, so i'd like to move all the deployment staff into the separate directory to make the following:
/home/some/project
├───deployment
│ .credentials_dev
│ .credentials_prod
│ ca.cer
│ docker-compose.yml
│ Dockerfile
│ init.sql
│ nginx_dev.conf
│ nginx_prod.conf
│
├───src
└───users
The idea is to receieve in the result following structure on the docker host:
host
├───dev
│ ├───src
│ └───users
├───prod
│ ├───src
│ └───users
└───project
├───deployment
│ .credentials_dev
│ .credentials_prod
│ ca.cer
│ docker-compose.yml
│ Dockerfile
│ init.sql
│ nginx_dev.conf
│ nginx_prod.conf
│
├───src
└───users
and two containers app_dev and app_prod, which volumes are appropriate mounted into folders /host/dev and /host/prod.
I tried multiple solutions found here, but all of them in different variations returned the following errors:
ERROR: Service 'app_dev' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder264200969/ca.cer: no such file or directory
ERROR: Service 'app_dev' failed to build: COPY failed: Forbidden path outside the build context: ../ca.cer ()
Error is always appears while docker-compose is trying to build an image, on that string:
COPY deployment/ca.cer /code/
Please tell me how to achieve the desired result.
The Deployment folder is outside of the build context. Docker will pass all the files inside the deployment file as the build context. However the deployment folder itself is outside of it.
Change your copy statement to be instead :
COPY ./ca.cer /code/
Since in the image you are already in that folder.

Unable to connect second org peer to channel in HLF

1 I am following below link to setup my first network on Hyperledger Fabric http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html
Whatever steps are mentioned in this setup i am pretty much able to do all.My all docker container working good The issue is than when I try to join other peers of second org. to the channel, using below
"Join peer0.dfarmretail.com to the channel."
docker exec -e "CORE_PEER_LOCALMSPID=DfarmretailMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin#dfarmretail.com/msp" peer0.dfarmretail.com peer channel join -o orderer.dfarmadmin.com:7050 -b dfarmchannel.block
however I am getting below error
error: error getting endorser client for channel: endorser client failed to connect to peer0.dfarmretail.com:8051: failed to create new connection: connection error: desc = "transport: error while dialing: dial tcp 172.20.0.6:8051: connect: connection refused"
Please see below files
my Docker-composer.yaml
version: '2'
networks:
dfarm:
services:
ca.dfarmadmin.com:
image: hyperledger/fabric-ca
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CA_NAME=ca.dfarmadmin.com
- FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.dfarmadmin.com-cert.pem
- FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/ad62c9f5133ad87c5f94d6b3175eb059395b5f68caf43e439e6bb7d42d8296e4_sk
ports:
- "7054:7054"
command: sh -c 'fabric-ca-server start -b admin:adminpw -d'
volumes:
- ./crypto-config/peerOrganizations/dfarmadmin.com/ca/:/etc/hyperledger/fabric-ca-server-config
container_name: ca.dfarmadmin.com
networks:
- dfarm
orderer.dfarmadmin.com:
container_name: orderer.dfarmadmin.com
image: hyperledger/fabric-orderer
environment:
- ORDERER_GENERAL_LOGLEVEL=debug
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_GENESISMETHOD=file
- ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
command: orderer
ports:
- 7050:7050
volumes:
- ./config/:/etc/hyperledger/configtx
- ./crypto-config/ordererOrganizations/dfarmadmin.com/orderers/orderer.dfarmadmin.com/:/etc/hyperledger/msp/orderer
- ./crypto-config/peerOrganizations/dfarmadmin.com/peers/peer0.dfarmadmin.com/:/etc/hyperledger/msp/peerDfarmadmin
networks:
- dfarm
peer0.dfarmadmin.com:
container_name: peer0.dfarmadmin.com
image: hyperledger/fabric-peer
environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_PEER_ID=peer0.dfarmadmin.com
- CORE_LOGGING_PEER=debug
- CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
- CORE_PEER_LOCALMSPID=DfarmadminMSP
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/
- CORE_PEER_ADDRESS=peer0.dfarmadmin.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.dfarmadmin.com:7051
# # the following setting starts chaincode containers on the same
# # bridge network as the peers
# # https://docs.docker.com/compose/networking/
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_dfarm
- CORE_LEDGER_STATE_STATEDATABASE=CouchDB
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
# The CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME and CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD
# provide the credentials for ledger to connect to CouchDB. The username and password must
# match the username and password set for the associated CouchDB.
- CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
- CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: peer node start
# command: peer node start --peer-chaincodedev=true
ports:
- 7051:7051
- 7053:7053
volumes:
- /var/run/:/host/var/run/
- ./crypto-config/peerOrganizations/dfarmadmin.com/peers/peer0.dfarmadmin.com/msp:/etc/hyperledger/msp/peer
- ./crypto-config/peerOrganizations/dfarmadmin.com/users:/etc/hyperledger/msp/users
- ./config:/etc/hyperledger/configtx
depends_on:
- orderer.dfarmadmin.com
- couchdb
networks:
- dfarm
peer0.dfarmretail.com:
container_name: peer0.dfarmretail.com
image: hyperledger/fabric-peer
environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_PEER_ID=peer0.dfarmretail.com
- CORE_LOGGING_PEER=debug
- CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
- CORE_PEER_LOCALMSPID=DfarmretailMSP
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/
- CORE_PEER_ADDRESS=peer0.dfarmretail.com:8051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.dfarmretail.com:8051
# # the following setting starts chaincode containers on the same
# # bridge network as the peers
# # https://docs.docker.com/compose/networking/
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_dfarm
- CORE_LEDGER_STATE_STATEDATABASE=CouchDB
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
# The CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME and CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD
# provide the credentials for ledger to connect to CouchDB. The username and password must
# match the username and password set for the associated CouchDB.
- CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
- CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: peer node start
# command: peer node start --peer-chaincodedev=true
ports:
- 8051:8051
- 8053:8053
volumes:
- /var/run/:/host/var/run/
- ./crypto-config/peerOrganizations/dfarmretail.com/peers/peer0.dfarmretail.com/msp:/etc/hyperledger/msp/peer
- ./crypto-config/peerOrganizations/dfarmretail.com/users:/etc/hyperledger/msp/users
- ./config:/etc/hyperledger/configtx
depends_on:
- orderer.dfarmadmin.com
- couchdb
networks:
- dfarm
couchdb:
container_name: couchdb
image: hyperledger/fabric-couchdb
# Populate the COUCHDB_USER and COUCHDB_PASSWORD to set an admin user and password
# for CouchDB. This will prevent CouchDB from operating in an "Admin Party" mode.
environment:
- COUCHDB_USER=
- COUCHDB_PASSWORD=
ports:
- 5984:5984
networks:
- dfarm
cli:
container_name: cli
image: hyperledger/fabric-tools
tty: true
stdin_open: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=cli
- CORE_PEER_ADDRESS=peer0.dfarmadmin.com:7051
- CORE_PEER_LOCALMSPID=DfarmadminMSP
- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/dfarmadmin.com/users/Admin#dfarmadmin.com/msp
- CORE_CHAINCODE_KEEPALIVE=10
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: /bin/bash
volumes:
- /var/run/:/host/var/run/
- ./../chaincode/:/opt/gopath/src/github.com/
- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
networks:
- dfarm
depends_on:
- orderer.dfarmadmin.com
- peer0.dfarmadmin.com
- peer0.dfarmretail.com
- couchdb
my start.sh
#!/bin/bash
#
# Exit on first error, print all commands.
set -ev
# don't rewrite paths for Windows Git Bash users
export MSYS_NO_PATHCONV=1
FABRIC_START_TIMEOUT=90
docker-compose -f docker-compose.yml down
docker-compose -f docker-compose.yml up -d ca.dfarmadmin.com orderer.dfarmadmin.com peer0.dfarmadmin.com peer0.dfarmretail.com couchdb
# wait for Hyperledger Fabric to start
# incase of errors when running later commands, issue export FABRIC_START_TIMEOUT=<larger number>
export FABRIC_START_TIMEOUT=10
#echo ${FABRIC_START_TIMEOUT}
sleep ${FABRIC_START_TIMEOUT}
# Create the channel
docker exec -e "CORE_PEER_LOCALMSPID=DfarmadminMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin#dfarmadmin.com/msp" peer0.dfarmadmin.com peer channel create -o orderer.dfarmadmin.com:7050 -c dfarmchannel -f /etc/hyperledger/configtx/channel.tx
# Join peer0.dfarmadmin.com to the channel.
docker exec -e "CORE_PEER_LOCALMSPID=DfarmadminMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin#dfarmadmin.com/msp" peer0.dfarmadmin.com peer channel join -b dfarmchannel.block
# Join peer0.dfarmretail.com to the channel.
docker exec -e "CORE_PEER_LOCALMSPID=DfarmretailMSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin#dfarmretail.com/msp" peer0.dfarmretail.com peer channel join -o orderer.dfarmadmin.com:7050 -b dfarmchannel.block
its my project folder structure.
├── config
│ ├── channel.tx
│ ├── DfarmadminMSPanchors.tx
│ ├── DfarmretailMSPanchors.tx
│ └── genesis.block
├── configtx.yaml
├── crypto-config
│ ├── 1
│ ├── ordererOrganizations
│ │ └── dfarmadmin.com
│ │ ├── ca
│ │ │ ├── 5f0077f4811e16e3bac8b64ae22e35bd52f3205538587e0a52eaa49e86b57c4c_sk
│ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ ├── orderers
│ │ │ └── orderer.dfarmadmin.com
│ │ │ ├── msp
│ │ │ │ ├── admincerts
│ │ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ │ ├── cacerts
│ │ │ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ │ │ ├── keystore
│ │ │ │ │ └── ecda7305295e86d0890aea73874c80c21a9b29dc04435ef521f1025194a366c8_sk
│ │ │ │ ├── signcerts
│ │ │ │ │ └── orderer.dfarmadmin.com-cert.pem
│ │ │ │ └── tlscacerts
│ │ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ │ └── tls
│ │ │ ├── ca.crt
│ │ │ ├── server.crt
│ │ │ └── server.key
│ │ ├── tlsca
│ │ │ ├── 199db47c8e231c6cff329e1fdfa8b522ef7b74847808f61045057b56498f49fd_sk
│ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ └── users
│ │ └── Admin#dfarmadmin.com
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ │ ├── keystore
│ │ │ │ └── 0c5004c87035e89b735940b5b446d59d138c1af8f42b73980c7d7b03373ee333_sk
│ │ │ ├── signcerts
│ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ └── tls
│ │ ├── ca.crt
│ │ ├── client.crt
│ │ └── client.key
│ └── peerOrganizations
│ ├── dfarmadmin.com
│ │ ├── ca
│ │ │ ├── ad62c9f5133ad87c5f94d6b3175eb059395b5f68caf43e439e6bb7d42d8296e4_sk
│ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ ├── peers
│ │ │ ├── peer0.dfarmadmin.com
│ │ │ │ ├── msp
│ │ │ │ │ ├── admincerts
│ │ │ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ │ │ ├── cacerts
│ │ │ │ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ │ │ │ ├── keystore
│ │ │ │ │ │ └── 66f1271392ea3ce4d3548e91ee5620591e79e538e36a69b38786b3f11f3c53e2_sk
│ │ │ │ │ ├── signcerts
│ │ │ │ │ │ └── peer0.dfarmadmin.com-cert.pem
│ │ │ │ │ └── tlscacerts
│ │ │ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ │ │ └── tls
│ │ │ │ ├── ca.crt
│ │ │ │ ├── server.crt
│ │ │ │ └── server.key
│ │ │ └── peer0.dfarmretail.com
│ │ │ └── msp
│ │ │ └── keystore
│ │ ├── tlsca
│ │ │ ├── f6f49b0ff9c7f850e5f655dfbb88ce7b8c07f3f872d151346ac65c6f5f2ef80d_sk
│ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ └── users
│ │ ├── Admin#dfarmadmin.com
│ │ │ ├── msp
│ │ │ │ ├── admincerts
│ │ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ │ ├── cacerts
│ │ │ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ │ │ ├── keystore
│ │ │ │ │ └── 9c65737a78159bf977b9e38299c9c8e02278f76c3d4650caf32a4da845947547_sk
│ │ │ │ ├── signcerts
│ │ │ │ │ └── Admin#dfarmadmin.com-cert.pem
│ │ │ │ └── tlscacerts
│ │ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ │ └── tls
│ │ │ ├── ca.crt
│ │ │ ├── client.crt
│ │ │ └── client.key
│ │ └── User1#dfarmadmin.com
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── User1#dfarmadmin.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.dfarmadmin.com-cert.pem
│ │ │ ├── keystore
│ │ │ │ └── 458f1f699493828d88507fabb9ad2dab4fc2cc8acdaf4aa65c1fda12710227dd_sk
│ │ │ ├── signcerts
│ │ │ │ └── User1#dfarmadmin.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.dfarmadmin.com-cert.pem
│ │ └── tls
│ │ ├── ca.crt
│ │ ├── client.crt
│ │ └── client.key
│ └── dfarmretail.com
│ ├── ca
│ │ ├── 8f839598652d94f6ab6cb3d0f15390df5fe8dd7b6bb88c5c3b75205b975bc8d2_sk
│ │ └── ca.dfarmretail.com-cert.pem
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin#dfarmretail.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.dfarmretail.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.dfarmretail.com-cert.pem
│ ├── peers
│ │ └── peer0.dfarmretail.com
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin#dfarmretail.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.dfarmretail.com-cert.pem
│ │ │ ├── keystore
│ │ │ │ └── 2115fb2c52372041918517c2dcef91cb7cc66ca4a987a1606a98e9b75d78ab91_sk
│ │ │ ├── signcerts
│ │ │ │ └── peer0.dfarmretail.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.dfarmretail.com-cert.pem
│ │ └── tls
│ │ ├── ca.crt
│ │ ├── server.crt
│ │ └── server.key
│ ├── tlsca
│ │ ├── 8b26e70a303598e0012852426ac93be726210c5911baf4695785cf595bad3041_sk
│ │ └── tlsca.dfarmretail.com-cert.pem
│ └── users
│ ├── Admin#dfarmretail.com
│ │ ├── msp
│ │ │ ├── admincerts
│ │ │ │ └── Admin#dfarmretail.com-cert.pem
│ │ │ ├── cacerts
│ │ │ │ └── ca.dfarmretail.com-cert.pem
│ │ │ ├── keystore
│ │ │ │ └── 7ac01c0d8b0b4f3245d1e68fe34d34a2e1727059c459c1418b68b66870328eb2_sk
│ │ │ ├── signcerts
│ │ │ │ └── Admin#dfarmretail.com-cert.pem
│ │ │ └── tlscacerts
│ │ │ └── tlsca.dfarmretail.com-cert.pem
│ │ └── tls
│ │ ├── ca.crt
│ │ ├── client.crt
│ │ └── client.key
│ └── User1#dfarmretail.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── User1#dfarmretail.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.dfarmretail.com-cert.pem
│ │ ├── keystore
│ │ │ └── e40665832cc9d4fce41f72b04505655f9eb46e3b704547987f03863de37331b5_sk
│ │ ├── signcerts
│ │ │ └── User1#dfarmretail.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.dfarmretail.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── client.crt
│ └── client.key
├── crypto-config.yaml
├── docker-compose.yml
├── generate.sh
├── init.sh
├── README.md
├── start.sh
├── stop.sh
└── teardown.sh
docker logs for dfarmretail container
docker logs orderer.dfarmadmin.com
I have tried lot to rectify the issue however I am unable to so could you please help on this
thanks in advance
Is your peer for peer0.dfarmretail.com running OK? (I would check the log for it) In your docker compose file you are configuring both your peers to use the same CouchDB container - but you need to configure a separate CouchDB for each peer. The retail peer maybe failing because of some problem with the CouchDB container already being allocated to the admin peer. The 2nd CouchDB container will have to use a different port, and the retail peer will have to be changed to connect to that new port.
I notice that you are exporting port 7053 on you peer. Port 7053 was used on 'earlier' versions of Fabric for the eventhub I think - what version of Fabric are you using?
You don't have to use CouchDB for your peers, but if you configure your peers to use CouchDB ( CORE_LEDGER_STATE_STATEDATABASE=CouchDB ) then you need a separate CouchDB container for each.
Following updates to the question and comment:
The original error shows a "connection refused" but from the log it looks like the peer is still running. So it looks like some networking error - there is also a line in the dfarmretail peer log showing that the chaincode listen address is using port 7052, whereas I think it should have 8052.
I suggest you add these 2 config lines to the dfarmadmin peer in the docker compose file:
- CORE_PEER_LISTENADDRESS=0.0.0.0:7051
- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
and for dfarmretail peer:
- CORE_PEER_LISTENADDRESS=0.0.0.0:8051
- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:8052
This should clear any port ambiguation and make the peers listen on all interfaces.
You could try the free tool from www.chaincoder.org which will generate all config files for you and let you easily code and deploy chaincodes on peers. Follow here Chaincoder

jenkins - pm2 restart all command in jenkins not updating the node-app for public

I am trying to deploy node.js project on a server with the help of jenkins ,i have added GitHub web-hook and every thing is working fine. pm2 restart index.js when i running this command from my user hamza its updating the content with new pull code but jenkins do command running successfully but not updating it even i tried su in my shell
+ ./script/deploy
su: must be run from a terminal
From https://github.com/hamza-younas94/node-app
* branch master -> FETCH_HEAD
a7e9a1a..188a395 master -> origin/master
Updating a7e9a1a..188a395
Fast-forward
index.js | 2 +-
script/deploy | 2 +-
test/test.js | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
audited 190 packages in 1.706s
found 55 vulnerabilities (16 low, 19 moderate, 19 high, 1 critical)
run `npm audit fix` to fix them, or `npm audit` for details
Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [index.js](ids: 0)
[PM2] [index](0) ✓
┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬─────────┬──────────┐
│ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼─────────┼──────────┤
│ index │ 0 │ 0.0.2 │ fork │ 10159 │ online │ 138 │ 0s │ 0% │ 22.0 MB │ jenkins │ disabled │
└──────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴─────────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
Finished: SUCCESS
my ubtunu terminal output of pm2 command which working fine
┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬─────────┬──────────┐
│ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼─────────┼──────────┤
│ index │ 0 │ 0.0.2 │ fork │ 10159 │ online │ 25 │ 0s │ 0% │ 22.0 MB │ hamza │ disabled │
└──────────┴────┴─────────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴─────────┴──────────┘
my deploy shell code:
#!/bin/sh
su - hamza
cd /home/hamza/node-app
git pull origin master
npm install --production
pm2 restart index.js
exit
well i did it via shell in my shell i am connecting other user via ssh.
login in jenkins user generated ssh key
add the key in authorized_keys
wrote a shell which connection otheruser#my_ip_add and wrote command which i need
Why i have to do this?
Because pm2 restart all was working but working as jenkins user and you can see it in my question, when i was restart it with my otheruser which started it was working fine.
PS: may be pm2 require same user/session for doing activity

Electron application SQLITE package has not been found installed

We are struggling with building app for windows 32bit and 64bit.
It is angular 2 application which uses sqlite3 as a database.
Everything works perfectly in a development but after packaging app and running it on windows it throwns error
SQLite package has not been found installed. Try to install it: npm install sqlite3 --save
Here is package.json ( part of it which is important for this issue ):
"scripts": {
"build:aot:prod": "npm run clean:dist && npm run clean:aot && cross-env BUILD_AOT=1 npm run webpack -- --config config/webpack.prod.js --progress --profile --bail",
"build:aot": "npm run build:aot:prod",
"build:dev": "npm run clean:dist && npm run webpack -- --config config/webpack.dev.js --progress --profile",
"build:docker": "npm run build:prod && docker build -t angular2-webpack-start:latest .",
"build:prod": "npm run clean:dist && npm run webpack -- --config config/webpack.prod.js --progress --profile --bail",
"build": "npm run build:dev",
"ci:aot": "npm run lint && npm run test && npm run build:aot && npm run e2e",
"ci:jit": "npm run lint && npm run test && npm run build:prod && npm run e2e",
"ci:nobuild": "npm run lint && npm test && npm run e2e",
"ci:testall": "npm run lint && npm run test && npm run build:prod && npm run e2e && npm run build:aot && npm run e2e",
"ci:travis": "npm run lint && npm run test && npm run build:aot && npm run e2e:travis",
"ci": "npm run ci:testall",
"clean:dll": "npm run rimraf -- dll",
"clean:aot": "npm run rimraf -- compiled",
"clean:dist": "npm run rimraf -- dist",
"clean:install": "npm set progress=false && npm install",
"clean": "npm cache clean --force && npm run rimraf -- node_modules doc coverage dist compiled dll",
"docker": "docker",
"docs": "npm run typedoc -- --options typedoc.json --exclude '**/*.spec.ts' ./src/",
"e2e:live": "npm-run-all -p -r server:prod:ci protractor:live",
"e2e:travis": "npm-run-all -p -r server:prod:ci protractor:delay",
"e2e": "npm-run-all -p -r server:prod:ci protractor",
"github-deploy:dev": "npm run webpack -- --config config/webpack.github-deploy.js --progress --profile --env.githubDev",
"github-deploy:prod": "npm run webpack -- --config config/webpack.github-deploy.js --progress --profile --env.githubProd",
"github-deploy": "npm run github-deploy:dev",
"lint": "npm run tslint \"src/**/*.ts\"",
"node": "node",
"postinstall": "install-app-deps && electron-rebuild",
"postversion": "git push && git push --tags",
"preclean:install": "npm run clean",
"preversion": "npm test",
"protractor": "protractor",
"protractor:delay": "sleep 3 && npm run protractor",
"protractor:live": "protractor --elementExplorer",
"rimraf": "rimraf",
"server:dev:hmr": "npm run server:dev -- --inline --hot",
"server:dev": "npm run webpack-dev-server -- --config config/webpack.dev.js --progress --profile --watch --content-base src/",
"server:prod": "http-server dist -c-1 --cors",
"server:prod:ci": "http-server dist -p 3000 -c-1 --cors",
"server": "npm run server:dev",
"start:hmr": "npm run server:dev:hmr",
"start": "npm run server:dev",
"test": "npm run lint && karma start",
"tslint": "tslint",
"typedoc": "typedoc",
"version": "npm run build",
"watch:dev:hmr": "npm run watch:dev -- --hot",
"watch:dev": "npm run build:dev -- --watch",
"watch:prod": "npm run build:prod -- --watch",
"watch:test": "npm run test -- --auto-watch --no-single-run",
"watch": "npm run watch:dev",
"electron:pre": "copyfiles main.js dist && copyfiles package.json dist && copyfiles ./icons/* ./dist && npm --prefix ./dist install ./dist --production",
"electron:dev": "cross-env NODE_ENV=development electron .",
"electron:prod": "npm run build:aot:prod && npm run electron:pre && electron ./dist",
"electron:linux": "npm run build:aot:prod && npm run electron:pre && node package.js --asar --platform=linux --arch=x64 && cd dist && electron-builder install-app-deps --platform=linux --arch=x64",
"electron:windows": "npm run build:aot:prod && npm run electron:pre && electron-builder install-app-deps --platform=win32 && node package.js --asar --platform=win32",
"electron:mac": "npm run build:aot:prod && npm run electron:pre && node package.js --asar --platform=darwin --arch=x64 && cd dist && electron-builder install-app-deps --platform=darwin --arch=x64",
"webdriver-manager": "webdriver-manager",
"webdriver:start": "npm run webdriver-manager start",
"webdriver:update": "webdriver-manager update",
"webpack-dev-server": "node --max_old_space_size=4096 node_modules/webpack-dev-server/bin/webpack-dev-server.js",
"webpack": "node --max_old_space_size=4096 node_modules/webpack/bin/webpack.js"
},
"dependencies": {
"node-pre-gyp": "^0.6.38",
"sqlite3": "^3.1.9",
"typeorm": "0.1.0-alpha.49",
"uikit": "^3.0.0-beta.30"
},
"devDependencies": {
"#angular/animations": "~4.3.1",
"#angular/common": "~4.3.1",
"#angular/compiler": "~4.3.1",
"#angular/compiler-cli": "~4.3.1",
"#angular/core": "~4.3.1",
"#angular/forms": "~4.3.1",
"#angular/http": "~4.3.1",
"#angular/platform-browser": "~4.3.1",
"#angular/platform-browser-dynamic": "~4.3.1",
"#angular/platform-server": "~4.3.1",
"#angular/router": "~4.3.1",
"#angularclass/hmr": "~1.2.2",
"#angularclass/hmr-loader": "^3.0.4",
"#ngrx/effects": "^4.0.5",
"#ngrx/store": "^4.0.3",
"#types/hammerjs": "^2.0.34",
"#types/jasmine": "2.5.45",
"#types/node": "^7.0.39",
"#types/source-map": "^0.5.0",
"#types/uglify-js": "^2.6.28",
"#types/webpack": "^2.2.16",
"add-asset-html-webpack-plugin": "^1.0.2",
"angular2-template-loader": "^0.6.2",
"assets-webpack-plugin": "^3.5.1",
"awesome-typescript-loader": "~3.1.2",
"codelyzer": "~2.1.1",
"copy-webpack-plugin": "^4.0.1",
"copyfiles": "^1.2.0",
"core-js": "^2.4.1",
"cross-env": "^5.0.0",
"css-loader": "^0.28.0",
"electron": "1.7.5",
"electron-builder": "^19.27.7",
"electron-packager": "8.7.2",
"electron-rebuild": "^1.6.0",
"electron-reload": "^1.1.0",
"exports-loader": "^0.6.4",
"expose-loader": "^0.7.3",
"extract-text-webpack-plugin": "~2.1.0",
"file-loader": "^0.11.1",
"find-root": "^1.0.0",
"gh-pages": "^1.0.0",
"html-webpack-plugin": "^2.28.0",
"http-server": "^0.9.0",
"ie-shim": "^0.1.0",
"imports-loader": "^0.7.1",
"inline-manifest-webpack-plugin": "^3.0.1",
"istanbul-instrumenter-loader": "2.0.0",
"jasmine-core": "^2.5.2",
"jquery": "^3.2.1",
"karma": "^1.6.0",
"karma-chrome-launcher": "^2.0.0",
"karma-coverage": "^1.1.1",
"karma-jasmine": "^1.1.0",
"karma-mocha-reporter": "^2.2.3",
"karma-remap-coverage": "^0.1.4",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^2.0.4",
"less": "^2.7.2",
"less-loader": "^4.0.5",
"ng-router-loader": "^2.1.0",
"ngc-webpack": "^3.2.0",
"node-sass": "^4.5.2",
"npm-run-all": "^4.0.2",
"optimize-js-plugin": "0.0.4",
"parse5": "^3.0.2",
"preload-webpack-plugin": "^1.2.2",
"protractor": "^5.1.1",
"raw-loader": "0.5.1",
"reflect-metadata": "^0.1.10",
"rimraf": "~2.6.1",
"rxjs": "~5.0.2",
"sass-loader": "^6.0.3",
"script-ext-html-webpack-plugin": "^1.8.5",
"source-map-loader": "^0.2.1",
"string-replace-loader": "~1.2.0",
"style-loader": "^0.18.1",
"to-string-loader": "^1.1.5",
"ts-node": "^3.3.0",
"tslib": "^1.7.1",
"tslint": "~4.5.1",
"tslint-loader": "^3.5.2",
"typedoc": "^0.7.1",
"typescript": "2.5.0",
"uglify-js": "git://github.com/mishoo/UglifyJS2#harmony-v2.8.22",
"uglifyjs-webpack-plugin": "0.4.3",
"url-loader": "^0.5.8",
"webpack": "~2.6.1",
"webpack-dev-middleware": "^1.10.1",
"webpack-dev-server": "~2.4.2",
"webpack-dll-bundles-plugin": "^1.0.0-beta.5",
"webpack-merge": "~4.1.0",
"zone.js": "0.8.14"
},
After running npm run electron:windows everything is good and here is output:
/home/haris/.nvm/versions/node/v6.9.4/bin/node /home/haris/.nvm/versions/node/v6.9.4/lib/node_modules/npm/bin/npm-cli.js run electron:windows --scripts-prepend-node-path=auto
> angular-electron-starter#1.0.0 electron:windows /home/haris/development/walter/bitbucket-
> npm run build:aot:prod && npm run electron:pre && electron-builder install-app-deps --platform=win32 && node package.js --asar --platform=win32
> angular-electron-starter#1.0.0 build:aot:prod /home/haris/development/walter/bitbucket-
> npm run clean:dist && npm run clean:aot && cross-env BUILD_AOT=1 npm run webpack -- --config config/webpack.prod.js --progress --profile --bail
> angular-electron-starter#1.0.0 clean:dist /home/haris/development/walter/bitbucket-
> npm run rimraf -- dist
> angular-electron-starter#1.0.0 rimraf /home/haris/development/walter/bitbucket-
> rimraf "dist"
> angular-electron-starter#1.0.0 clean:aot /home/haris/development/walter/bitbucket-
> npm run rimraf -- compiled
> angular-electron-starter#1.0.0 rimraf /home/haris/development/walter/bitbucket-
> rimraf "compiled"
> angular-electron-starter#1.0.0 webpack /home/haris/development/walter/bitbucket-
> node --max_old_space_size=4096 node_modules/webpack/bin/webpack.js "--config" "config/webpack.prod.js" "--progress" "--profile" "--bail"
Starting compilation using the angular compiler.
Angular compilation done, starting webpack bundling.
0% compiling
10% building modules 0/1 modules 1 active ...ntent-manager/src/main.browser.aot.ts
10% building modules 0/2 modules 2 active ...tent-manager/src/polyfills.browser.ts
[at-loader] Using typescript#2.5.0 from typescript and "tsconfig.json" from /home/haris/development/walter/bitbucket-/tsconfig.webpack.json.
10% building modules 1/2 modules 1 active ...tent-manager/src/polyfills.browser.ts
# I removed building modules proccess because of limit of characters on stackoverflow.
25067ms additional asset processing
92% chunk asset optimization
3538ms chunk asset optimization
94% asset optimization
[at-loader] Checking started in a separate process...
[at-loader] Ok, 2.38 sec.
2788ms asset optimization
95% emitting
18ms emitting
Hash: a3f29d769fb284afcae1
Version: webpack 2.6.1
Time: 62001ms
[emitted]
WARNING in ./~/typeorm/platform/PlatformTools.js
33:19-32 Critical dependency: the request of a dependency is an expression
WARNING in ./~/typeorm/platform/PlatformTools.js
37:23-85 Critical dependency: the request of a dependency is an expression
Child html-webpack-plugin for "index.html":
[3IRH] (webpack)/buildin/module.js 517 bytes {0} [built]
[] -> factory:36ms building:174ms = 210ms
[7GO9] ./~/html-webpack-plugin/lib/loader.js!./src/index.html 2.2 kB {0} [built]
factory:6ms building:11ms = 17ms
[DuR2] (webpack)/buildin/global.js 509 bytes {0} [built]
[] -> factory:36ms building:174ms = 210ms
[M4fF] ./~/lodash/lodash.js 540 kB {0} [built]
[] -> factory:83ms building:3556ms = 3639ms
Child extract-text-webpack-plugin:
[9rjH] ./~/css-loader!./src/styles/headings.css 166 bytes {0} [built]
factory:2ms building:17ms = 19ms
[FZ+f] ./~/css-loader/lib/css-base.js 2.26 kB {0} [built]
[] -> factory:0ms building:2ms = 2ms
Child extract-text-webpack-plugin:
[FZ+f] ./~/css-loader/lib/css-base.js 2.26 kB {0} [built]
[] -> factory:0ms building:1ms = 1ms
[pZge] ./~/css-loader!./~/less-loader/dist/cjs.js!./src/styles/styles.less 256 kB {0} [built]
factory:3ms building:5063ms = 5066ms
> angular-electron-starter#1.0.0 electron:pre /home/haris/development/walter/bitbucket-
> copyfiles main.js dist && copyfiles package.json dist && copyfiles ./icons/* ./dist && npm --prefix ./dist install ./dist --production
> sqlite3#3.1.13 install /home/haris/development/walter/bitbucket-/dist/node_modules/sqlite3
> node-pre-gyp install --fallback-to-build
[sqlite3] Success: "/home/haris/development/walter/bitbucket-/dist/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node" is installed via remote
> angular-electron-starter#1.0.0 postinstall /home/haris/development/walter/bitbucket-/dist
> install-app-deps && electron-rebuild
Warning: Please use as subcommand: electron-builder install-app-deps
electron-builder 19.36.0
Rebuilding native production dependencies for linux:x64
✔ Rebuild Complete
angular-electron-starter#1.0.0 /home/haris/development/walter/bitbucket-/dist
├─┬ node-pre-gyp#0.6.38
│ ├─┬ hawk#3.1.3
│ │ ├── boom#2.10.1
│ │ ├── cryptiles#2.0.5
│ │ ├── hoek#2.16.3
│ │ └── sntp#1.0.9
│ ├─┬ mkdirp#0.5.1
│ │ └── minimist#0.0.8
│ ├─┬ nopt#4.0.1
│ │ ├── abbrev#1.1.1
│ │ └─┬ osenv#0.1.4
│ │ ├── os-homedir#1.0.2
│ │ └── os-tmpdir#1.0.2
│ ├─┬ npmlog#4.1.2
│ │ ├─┬ are-we-there-yet#1.1.4
│ │ │ └── delegates#1.0.0
│ │ ├── console-control-strings#1.1.0
│ │ ├─┬ gauge#2.7.4
│ │ │ ├── aproba#1.2.0
│ │ │ ├── has-unicode#2.0.1
│ │ │ ├── object-assign#4.1.1
│ │ │ ├── signal-exit#3.0.2
│ │ │ ├─┬ string-width#1.0.2
│ │ │ │ ├── code-point-at#1.1.0
│ │ │ │ └─┬ is-fullwidth-code-point#1.0.0
│ │ │ │ └── number-is-nan#1.0.1
│ │ │ ├─┬ strip-ansi#3.0.1
│ │ │ │ └── ansi-regex#2.1.1
│ │ │ └── wide-align#1.1.2
│ │ └── set-blocking#2.0.0
│ ├─┬ rc#1.2.1
│ │ ├── deep-extend#0.4.2
│ │ ├── ini#1.3.4
│ │ ├── minimist#1.2.0
│ │ └── strip-json-comments#2.0.1
│ ├─┬ request#2.81.0
│ │ ├── aws-sign2#0.6.0
│ │ ├── aws4#1.6.0
│ │ ├── caseless#0.12.0
│ │ ├─┬ combined-stream#1.0.5
│ │ │ └── delayed-stream#1.0.0
│ │ ├── extend#3.0.1
│ │ ├── forever-agent#0.6.1
│ │ ├─┬ form-data#2.1.4
│ │ │ └── asynckit#0.4.0
│ │ ├─┬ har-validator#4.2.1
│ │ │ ├─┬ ajv#4.11.8
│ │ │ │ ├── co#4.6.0
│ │ │ │ └─┬ json-stable-stringify#1.0.1
│ │ │ │ └── jsonify#0.0.0
│ │ │ └── har-schema#1.0.5
│ │ ├─┬ http-signature#1.1.1
│ │ │ ├── assert-plus#0.2.0
│ │ │ ├─┬ jsprim#1.4.1
│ │ │ │ ├── assert-plus#1.0.0
│ │ │ │ ├── extsprintf#1.3.0
│ │ │ │ ├── json-schema#0.2.3
│ │ │ │ └─┬ verror#1.10.0
│ │ │ │ └── assert-plus#1.0.0
│ │ │ └─┬ sshpk#1.13.1
│ │ │ ├── asn1#0.2.3
│ │ │ ├── assert-plus#1.0.0
│ │ │ ├── bcrypt-pbkdf#1.0.1
│ │ │ ├─┬ dashdash#1.14.1
│ │ │ │ └── assert-plus#1.0.0
│ │ │ ├── ecc-jsbn#0.1.1
│ │ │ ├─┬ getpass#0.1.7
│ │ │ │ └── assert-plus#1.0.0
│ │ │ ├── jsbn#0.1.1
│ │ │ └── tweetnacl#0.14.5
│ │ ├── is-typedarray#1.0.0
│ │ ├── isstream#0.1.2
│ │ ├── json-stringify-safe#5.0.1
│ │ ├─┬ mime-types#2.1.17
│ │ │ └── mime-db#1.30.0
│ │ ├── oauth-sign#0.8.2
│ │ ├── performance-now#0.2.0
│ │ ├── qs#6.4.0
│ │ ├── safe-buffer#5.1.1
│ │ ├── stringstream#0.0.5
│ │ ├─┬ tough-cookie#2.3.3
│ │ │ └── punycode#1.4.1
│ │ ├── tunnel-agent#0.6.0
│ │ └── uuid#3.1.0
│ ├── semver#5.4.1
│ ├─┬ tar#2.2.1
│ │ ├── block-stream#0.0.9
│ │ ├─┬ fstream#1.0.11
│ │ │ └── graceful-fs#4.1.11
│ │ └── inherits#2.0.3
│ └─┬ tar-pack#3.4.0
│ ├─┬ debug#2.6.9
│ │ └── ms#2.0.0
│ ├── fstream-ignore#1.0.5
│ ├─┬ once#1.4.0
│ │ └── wrappy#1.0.2
│ ├─┬ readable-stream#2.3.3
│ │ ├── core-util-is#1.0.2
│ │ ├── isarray#1.0.0
│ │ ├── process-nextick-args#1.0.7
│ │ ├── string_decoder#1.0.3
│ │ └── util-deprecate#1.0.2
│ └── uid-number#0.0.6
├── reflect-metadata#0.1.10
├─┬ rimraf#2.6.2
│ └─┬ glob#7.1.2
│ ├── fs.realpath#1.0.0
│ ├── inflight#1.0.6
│ ├─┬ minimatch#3.0.4
│ │ └─┬ brace-expansion#1.1.8
│ │ ├── balanced-match#1.0.0
│ │ └── concat-map#0.0.1
│ └── path-is-absolute#1.0.1
├─┬ sqlite3#3.1.13
│ ├── nan#2.7.0
│ └─┬ node-pre-gyp#0.6.38
│ ├─┬ hawk#3.1.3
│ │ ├── boom#2.10.1
│ │ ├── cryptiles#2.0.5
│ │ ├── hoek#2.16.3
│ │ └── sntp#1.0.9
│ ├─┬ mkdirp#0.5.1
│ │ └── minimist#0.0.8
│ ├─┬ nopt#4.0.1
│ │ ├── abbrev#1.1.1
│ │ └─┬ osenv#0.1.4
│ │ ├── os-homedir#1.0.2
│ │ └── os-tmpdir#1.0.2
│ ├─┬ npmlog#4.1.2
│ │ ├─┬ are-we-there-yet#1.1.4
│ │ │ └── delegates#1.0.0
│ │ ├── console-control-strings#1.1.0
│ │ ├─┬ gauge#2.7.4
│ │ │ ├── aproba#1.2.0
│ │ │ ├── has-unicode#2.0.1
│ │ │ ├── object-assign#4.1.1
│ │ │ ├── signal-exit#3.0.2
│ │ │ ├─┬ string-width#1.0.2
│ │ │ │ ├── code-point-at#1.1.0
│ │ │ │ └─┬ is-fullwidth-code-point#1.0.0
│ │ │ │ └── number-is-nan#1.0.1
│ │ │ ├─┬ strip-ansi#3.0.1
│ │ │ │ └── ansi-regex#2.1.1
│ │ │ └── wide-align#1.1.2
│ │ └── set-blocking#2.0.0
│ ├─┬ rc#1.2.1
│ │ ├── deep-extend#0.4.2
│ │ ├── ini#1.3.4
│ │ ├── minimist#1.2.0
│ │ └── strip-json-comments#2.0.1
│ ├─┬ request#2.81.0
│ │ ├── aws-sign2#0.6.0
│ │ ├── aws4#1.6.0
│ │ ├── caseless#0.12.0
│ │ ├─┬ combined-stream#1.0.5
│ │ │ └── delayed-stream#1.0.0
│ │ ├── extend#3.0.1
│ │ ├── forever-agent#0.6.1
│ │ ├─┬ form-data#2.1.4
│ │ │ └── asynckit#0.4.0
│ │ ├─┬ har-validator#4.2.1
│ │ │ ├─┬ ajv#4.11.8
│ │ │ │ ├── co#4.6.0
│ │ │ │ └─┬ json-stable-stringify#1.0.1
│ │ │ │ └── jsonify#0.0.0
│ │ │ └── har-schema#1.0.5
│ │ ├─┬ http-signature#1.1.1
│ │ │ ├── assert-plus#0.2.0
│ │ │ ├─┬ jsprim#1.4.1
│ │ │ │ ├── assert-plus#1.0.0
│ │ │ │ ├── extsprintf#1.3.0
│ │ │ │ ├── json-schema#0.2.3
│ │ │ │ └─┬ verror#1.10.0
│ │ │ │ └── assert-plus#1.0.0
│ │ │ └─┬ sshpk#1.13.1
│ │ │ ├── asn1#0.2.3
│ │ │ ├── assert-plus#1.0.0
│ │ │ ├── bcrypt-pbkdf#1.0.1
│ │ │ ├─┬ dashdash#1.14.1
│ │ │ │ └── assert-plus#1.0.0
│ │ │ ├── ecc-jsbn#0.1.1
│ │ │ ├─┬ getpass#0.1.7
│ │ │ │ └── assert-plus#1.0.0
│ │ │ ├── jsbn#0.1.1
│ │ │ └── tweetnacl#0.14.5
│ │ ├── is-typedarray#1.0.0
│ │ ├── isstream#0.1.2
│ │ ├── json-stringify-safe#5.0.1
│ │ ├─┬ mime-types#2.1.17
│ │ │ └── mime-db#1.30.0
│ │ ├── oauth-sign#0.8.2
│ │ ├── performance-now#0.2.0
│ │ ├── qs#6.4.0
│ │ ├── safe-buffer#5.1.1
│ │ ├── stringstream#0.0.5
│ │ ├─┬ tough-cookie#2.3.3
│ │ │ └── punycode#1.4.1
│ │ ├── tunnel-agent#0.6.0
│ │ └── uuid#3.1.0
│ ├─┬ rimraf#2.6.2
│ │ └─┬ glob#7.1.2
│ │ ├── fs.realpath#1.0.0
│ │ ├── inflight#1.0.6
│ │ ├─┬ minimatch#3.0.4
│ │ │ └─┬ brace-expansion#1.1.8
│ │ │ ├── balanced-match#1.0.0
│ │ │ └── concat-map#0.0.1
│ │ └── path-is-absolute#1.0.1
│ ├── semver#5.4.1
│ ├─┬ tar#2.2.1
│ │ ├── block-stream#0.0.9
│ │ ├─┬ fstream#1.0.11
│ │ │ └── graceful-fs#4.1.11
│ │ └── inherits#2.0.3
│ └─┬ tar-pack#3.4.0
│ ├─┬ debug#2.6.9
│ │ └── ms#2.0.0
│ ├── fstream-ignore#1.0.5
│ ├─┬ once#1.4.0
│ │ └── wrappy#1.0.2
│ ├─┬ readable-stream#2.3.3
│ │ ├── core-util-is#1.0.2
│ │ ├── isarray#1.0.0
│ │ ├── process-nextick-args#1.0.7
│ │ ├── string_decoder#1.0.3
│ │ └── util-deprecate#1.0.2
│ └── uid-number#0.0.6
├─┬ typeorm#0.1.0-alpha.49
│ ├── app-root-path#2.0.1
│ ├─┬ chalk#2.1.0
│ │ ├─┬ ansi-styles#3.2.0
│ │ │ └─┬ color-convert#1.9.0
│ │ │ └── color-name#1.1.3
│ │ ├── escape-string-regexp#1.0.5
│ │ └─┬ supports-color#4.4.0
│ │ └── has-flag#2.0.0
│ ├─┬ cli-highlight#1.1.4
│ │ ├─┬ chalk#1.1.3
│ │ │ ├── ansi-styles#2.2.1
│ │ │ ├── has-ansi#2.0.0
│ │ │ └── supports-color#2.0.0
│ │ ├── he#1.1.1
│ │ ├── highlight.js#9.12.0
│ │ ├─┬ mz#2.7.0
│ │ │ ├── any-promise#1.3.0
│ │ │ └─┬ thenify-all#1.6.0
│ │ │ └── thenify#3.3.0
│ │ └─┬ yargs#4.8.1
│ │ ├── lodash.assign#4.2.0
│ │ ├── os-locale#1.4.0
│ │ ├─┬ read-pkg-up#1.0.1
│ │ │ ├─┬ find-up#1.1.2
│ │ │ │ ├── path-exists#2.1.0
│ │ │ │ └─┬ pinkie-promise#2.0.1
│ │ │ │ └── pinkie#2.0.4
│ │ │ └─┬ read-pkg#1.1.0
│ │ │ ├─┬ load-json-file#1.1.0
│ │ │ │ └─┬ strip-bom#2.0.0
│ │ │ │ └── is-utf8#0.2.1
│ │ │ └── path-type#1.1.0
│ │ ├── which-module#1.0.0
│ │ ├── window-size#0.2.0
│ │ └─┬ yargs-parser#2.4.1
│ │ └── camelcase#3.0.0
│ ├── dotenv#4.0.0
│ ├─┬ js-yaml#3.10.0
│ │ ├─┬ argparse#1.0.9
│ │ │ └── sprintf-js#1.0.3
│ │ └── esprima#4.0.0
│ ├─┬ xml2js#0.4.19
│ │ ├── sax#1.2.4
│ │ └── xmlbuilder#9.0.4
│ ├─┬ yargonaut#1.1.2
│ │ ├─┬ chalk#1.1.3
│ │ │ ├── ansi-styles#2.2.1
│ │ │ └── supports-color#2.0.0
│ │ ├── figlet#1.2.0
│ │ └── parent-require#1.0.0
│ └─┬ yargs#9.0.1
│ ├── camelcase#4.1.0
│ ├─┬ cliui#3.2.0
│ │ └── wrap-ansi#2.1.0
│ ├── decamelize#1.2.0
│ ├── get-caller-file#1.0.2
│ ├─┬ os-locale#2.1.0
│ │ ├─┬ execa#0.7.0
│ │ │ ├─┬ cross-spawn#5.1.0
│ │ │ │ ├─┬ lru-cache#4.1.1
│ │ │ │ │ ├── pseudomap#1.0.2
│ │ │ │ │ └── yallist#2.1.2
│ │ │ │ ├─┬ shebang-command#1.2.0
│ │ │ │ │ └── shebang-regex#1.0.0
│ │ │ │ └─┬ which#1.3.0
│ │ │ │ └── isexe#2.0.0
│ │ │ ├── get-stream#3.0.0
│ │ │ ├── is-stream#1.1.0
│ │ │ ├─┬ npm-run-path#2.0.2
│ │ │ │ └── path-key#2.0.1
│ │ │ ├── p-finally#1.0.0
│ │ │ └── strip-eof#1.0.0
│ │ ├─┬ lcid#1.0.0
│ │ │ └── invert-kv#1.0.0
│ │ └─┬ mem#1.1.0
│ │ └── mimic-fn#1.1.0
│ ├─┬ read-pkg-up#2.0.0
│ │ ├─┬ find-up#2.1.0
│ │ │ └─┬ locate-path#2.0.0
│ │ │ ├─┬ p-locate#2.0.0
│ │ │ │ └── p-limit#1.1.0
│ │ │ └── path-exists#3.0.0
│ │ └─┬ read-pkg#2.0.0
│ │ ├─┬ load-json-file#2.0.0
│ │ │ ├─┬ parse-json#2.2.0
│ │ │ │ └─┬ error-ex#1.3.1
│ │ │ │ └── is-arrayish#0.2.1
│ │ │ ├── pify#2.3.0
│ │ │ └── strip-bom#3.0.0
│ │ ├─┬ normalize-package-data#2.4.0
│ │ │ ├── hosted-git-info#2.5.0
│ │ │ ├─┬ is-builtin-module#1.0.0
│ │ │ │ └── builtin-modules#1.1.1
│ │ │ └─┬ validate-npm-package-license#3.0.1
│ │ │ ├─┬ spdx-correct#1.0.2
│ │ │ │ └── spdx-license-ids#1.2.2
│ │ │ └── spdx-expression-parse#1.0.4
│ │ └── path-type#2.0.0
│ ├── require-directory#2.1.1
│ ├── require-main-filename#1.0.1
│ ├─┬ string-width#2.1.1
│ │ ├── is-fullwidth-code-point#2.0.0
│ │ └─┬ strip-ansi#4.0.0
│ │ └── ansi-regex#3.0.0
│ ├── which-module#2.0.0
│ ├── y18n#3.2.1
│ └── yargs-parser#7.0.0
└── uikit#3.0.0-beta.30
electron-builder 19.36.0
Rebuilding native production dependencies for win32:x64
Packaging app for platform win32 ia32 using electron v1.7.5
Packaging app for platform win32 x64 using electron v1.7.5
Application packaged successfully! [ 'app-builds/angular-electron-starter-win32-ia32',
'app-builds/angular-electron-starter-win32-x64' ]
Process finished with exit code 0
But when I run .exe on windows I'm getting error that I mentioned above how sqlite package has not been found.
SQLite3 is a native Node.js module so it can't be used directly with Electron without rebuilding it to target Electron.The electron-builder will build the native module for our platform and we can then require it in code as normal.
The following are steps you need to follow.
First, we need to add a postinstall step in your package.json:
"scripts": {
"postinstall": "install-app-deps"
...
}
and then install the necessary dependencies and build:
npm install --save-dev electron-builder
npm install --save sqlite3
npm run postinstall
I have used this same procedure in windows 7(32 bit) and also Windows 10(64 bit). I did not face any problem regarding this.

Resources