node-opcua / opcua-commander

a opcua client with blessed (ncurses)
MIT License
211 stars 46 forks source link

Docker image is broken #41

Closed jonboh closed 1 year ago

jonboh commented 1 year ago

Hi I've tried building the docker image for the latest release (0.31) but it fails to build.

I've run git bisect on the repo and it seems that the break was introduced in 1812e9b93d906f5363e9d27cf1ab0486ce6649fa

Here's the log I'm getting building the image

> docker build . -t opcua-commander
[+] Building 7.0s (12/12) FINISHED                                                                         docker:inferencedb
 => [internal] load .dockerignore                                                                                        0.0s
 => => transferring context: 66B                                                                                         0.0s
 => [internal] load build definition from Dockerfile                                                                     0.0s
 => => transferring dockerfile: 884B                                                                                     0.0s
 => [internal] load metadata for docker.io/library/node:alpine3.10                                                       0.5s
 => [1/8] FROM docker.io/library/node:alpine3.10@sha256:c392d12c89f7345dfa7192162bc0edc84f29278d2002b6df0db131428474803  0.0s
 => [internal] load build context                                                                                        0.0s
 => => transferring context: 7.31kB                                                                                      0.0s
 => CACHED [2/8] RUN apk add openssl dos2unix                                                                            0.0s
 => CACHED [3/8] WORKDIR /opt/opcuacommander                                                                             0.0s
 => [4/8] COPY . .                                                                                                       0.1s
 => [5/8] COPY package*.json ./                                                                                          0.1s
 => [6/8] RUN dos2unix bin/opcua-commander                                                                               0.4s
 => [7/8] RUN npm config set registry http://registry.npmjs.org/ && npm ci --only=production --unsafe-perm=true --allow  3.4s
 => ERROR [8/8] RUN npm install -g typescript && npm run build                                                           2.5s
------
 > [8/8] RUN npm install -g typescript && npm run build:
1.115 npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/
1.157 npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/
1.420
1.420 added 1 package in 968ms
1.530
1.530 > opcua-commander@0.31.0 build
1.530 > tsc -b && npm run bundle
1.530
2.441 lib/widget/widget_tree.ts(3,25): error TS7016: Could not find a declaration file for module 'blessed'. '/opt/opcuacommander/node_modules/blessed/lib/blessed.js' implicitly has an 'any' type.
2.441   Try `npm i --save-dev @types/blessed` if it exists or add a new declaration (.d.ts) file containing `declare module 'blessed';`
2.442 lib/view/alarm_box.ts(1,25): error TS7016: Could not find a declaration file for module 'blessed'. '/opt/opcuacommander/node_modules/blessed/lib/blessed.js' implicitly has an 'any' type.
2.442   Try `npm i --save-dev @types/blessed` if it exists or add a new declaration (.d.ts) file containing `declare module 'blessed';`
2.442 lib/view/alarm_box.ts(3,18): error TS7016: Could not find a declaration file for module 'wordwrap'. '/opt/opcuacommander/node_modules/wordwrap/index.js' implicitly has an 'any' type.
2.442   Try `npm i --save-dev @types/wordwrap` if it exists or add a new declaration (.d.ts) file containing `declare module 'wordwrap';`
2.442 lib/view/view.ts(1,26): error TS7016: Could not find a declaration file for module 'blessed'. '/opt/opcuacommander/node_modules/blessed/lib/blessed.js' implicitly has an 'any' type.
2.442   Try `npm i --save-dev @types/blessed` if it exists or add a new declaration (.d.ts) file containing `declare module 'blessed';`
2.442 lib/view/main_menu.ts(1,26): error TS7016: Could not find a declaration file for module 'blessed'. '/opt/opcuacommander/node_modules/blessed/lib/blessed.js' implicitly has an 'any' type.
2.442   Try `npm i --save-dev @types/blessed` if it exists or add a new declaration (.d.ts) file containing `declare module 'blessed';`
------
Dockerfile:21
--------------------
  19 |     RUN npm config set registry http://registry.npmjs.org/ && npm ci --only=production --unsafe-perm=true --allow-root
  20 |     # Install typescript and build solution
  21 | >>> RUN npm install -g typescript && npm run build
  22 |
  23 |     ENTRYPOINT [ "./bin/opcua-commander" ]
--------------------
ERROR: failed to solve: process "/bin/sh -c npm install -g typescript && npm run build" did not complete successfully: exit code: 1
erossignon commented 1 year ago

Thank you, the problem came from some packages that needed to be put into the "dependencies" section and not the "devDependencies". I have fixed the docker file and also upgraded it to be using nodejs 20.0