Commit 7af72308 authored by Власов Андрей Алексеевич's avatar Власов Андрей Алексеевич
Browse files

Better runtime image (distroless)

parent cf6a6a74
No related merge requests found
Pipeline #47381 passed with stage
in 41 seconds
Showing with 28 additions and 12 deletions
+28 -12
FROM node:16-alpine3.11 ARG NODE_VERSION=14
FROM node:$NODE_VERSION-alpine3.13 as build
WORKDIR /root/echo-bot WORKDIR /root/echo-bot
...@@ -7,4 +9,10 @@ COPY . . ...@@ -7,4 +9,10 @@ COPY . .
RUN npm ci \ RUN npm ci \
&& npm run build && npm run build
ENTRYPOINT ["node", "build/main.js"] FROM gcr.io/distroless/nodejs:$NODE_VERSION
WORKDIR /root/echo-bot
COPY --from=build /root/echo-bot/build build
COPY --from=build /root/echo-bot/node_modules node_modules
CMD ["build/main.js"]
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@types/node": { "@types/node": {
"version": "16.7.13", "version": "16.9.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.13.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
"integrity": "sha512-pLUPDn+YG3FYEt/pHI74HmnJOWzeR+tOIQzUx93pi9M7D8OE7PSLr97HboXwk5F+JS+TLtWuzCOW97AHjmOXXA==", "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==",
"dev": true "dev": true
}, },
"@types/urlencode": { "@types/urlencode": {
...@@ -105,9 +105,9 @@ ...@@ -105,9 +105,9 @@
} }
}, },
"typescript": { "typescript": {
"version": "4.4.2", "version": "4.4.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
"integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
"dev": true "dev": true
}, },
"underscore": { "underscore": {
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
"zod": "^3.8.2" "zod": "^3.8.2"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^16.7.13", "@types/node": "^16.9.1",
"@types/urlencode": "^1.1.2", "@types/urlencode": "^1.1.2",
"typescript": "^4.4.2" "typescript": "^4.4.3"
} }
} }
import { exit } from 'process' import * as os from 'os'
import { API } from './api/class' import { API } from './api/class'
import { require_success } from './api/types' import { require_success } from './api/types'
import { require_env, sleep, wait_for } from './utils' import { require_env, sleep, wait_for } from './utils'
function sig_handler(sig: NodeJS.Signals): never {
console.error(`Received ${sig}, exiting`)
process.exit(os.constants.signals[sig] + 128)
}
process.on('SIGINT', sig_handler)
process.on('SIGTERM', sig_handler)
async function main() { async function main() {
const zulip_url = require_env('ZULIP_URL') const zulip_url = require_env('ZULIP_URL')
...@@ -52,5 +60,5 @@ async function main() { ...@@ -52,5 +60,5 @@ async function main() {
main().catch(reason => { main().catch(reason => {
console.error(reason.message) console.error(reason.message)
exit(1) process.exit(1)
}) })
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment