diff --git a/README.md b/README.md index b227da76..fa7015ad 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,10 @@ $ npm run dev ``` The service should be reachable under http://localhost:1337. + +## Build image +```bash +$ VERSION=0.1.0 +$ docker build -f ./docker/prod/Dockerfile -t slvctrlplus/server:$VERSION . +$ docker push slvctrlplus/server:$VERSION +``` diff --git a/docker/dev/node/Dockerfile b/docker/dev/node/Dockerfile index fdcc1b91..cc8945e9 100644 --- a/docker/dev/node/Dockerfile +++ b/docker/dev/node/Dockerfile @@ -1,4 +1,4 @@ -FROM node:14-alpine +FROM node:18-alpine RUN apk --no-cache upgrade && \ apk --no-cache add bash git sudo openssh make diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile new file mode 100644 index 00000000..4b4cf2f9 --- /dev/null +++ b/docker/prod/Dockerfile @@ -0,0 +1,23 @@ +FROM node:18-alpine +WORKDIR /usr/app +COPY package.json yarn.lock tsconfig.json ./ +COPY src ./src +RUN ls -a +RUN yarn install +RUN yarn run build + +FROM node:18-alpine + +# Create app directory +WORKDIR /usr/app + +ENV PORT 1337 + +RUN apk add --no-cache eudev + +COPY package.json yarn.lock ./ +RUN yarn install --frozen-lockfile --prod +COPY --from=0 /usr/app/dist . +RUN yarn global add pm2 --prod +EXPOSE 1337 +CMD ["pm2-runtime","index.js"] diff --git a/package.json b/package.json index 89b3a9b6..5fb7019b 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "typescript": "^4.7.1-rc" }, "scripts": { + "build": "tsc", "compile": "tsc && node dist/index.js", "dev": "nodemon", "test": "jest", diff --git a/src/device/deviceManager.ts b/src/device/deviceManager.ts index c3d41ffd..387ccec7 100644 --- a/src/device/deviceManager.ts +++ b/src/device/deviceManager.ts @@ -26,7 +26,7 @@ export default class DeviceManager extends EventEmitter const ports = await SerialPort.list(); for (const portInfo of ports) { - if (!portInfo.path.startsWith('/dev/tty.usb') || '' === portInfo.serialNumber) { + if (undefined === portInfo.serialNumber || '' === portInfo.serialNumber) { continue; }