Skip to content

Commit

Permalink
Refactor Dockerfile to build TypeScript project
Browse files Browse the repository at this point in the history
Remove global ts-node installation and add build step for TypeScript. Copy tsconfig.json and update CMD to run compiled JavaScript. Adjust package.json scripts to include build and start commands.
  • Loading branch information
Inkvi committed Nov 18, 2024
1 parent 4640587 commit 3f1a203
Show file tree
Hide file tree
Showing 6 changed files with 207 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.21.0
uses: aquasecurity/trivy-action@0.28.0
with:
image-ref: ${{ env.IMAGE_NAME }}:latest
format: 'table'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/vuln-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
docker build -t signer .
- name: Peptide vulnerability scan
uses: aquasecurity/trivy-action@0.21.0
uses: aquasecurity/trivy-action@0.28.0
with:
image-ref: 'signer'
format: 'table'
Expand Down
135 changes: 135 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*


### Rest
.idea/
12 changes: 7 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ FROM node:18-alpine

WORKDIR /app

RUN npm install -g ts-node

COPY package*.json ./

RUN addgroup -g 333 polymer && adduser -D -u 333 -G polymer polymer
Expand All @@ -12,9 +10,13 @@ USER polymer

RUN npm install

COPY src src
COPY tsconfig.json ./
COPY src src

EXPOSE 8000
# Build TypeScript files
RUN npm run build

CMD ["ts-node", "src/server.ts"]
EXPOSE 8000

# Run compiled JavaScript instead of TypeScript
CMD ["node", "dist/server.js"]
60 changes: 60 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
"description": "",
"main": "index.js",
"scripts": {
"build": "tsc",
"start": "node dist/server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
Expand All @@ -18,6 +20,7 @@
"asn1js": "^3.0.5",
"axios": "^1.7.4",
"bn.js": "^5.2.1",
"cross-spawn": "^7.0.5",
"ethers": "^6.13.1",
"fast-crc32c": "github:ChainSafe/node-fast-crc32c",
"fastify": "^4.27.0",
Expand Down

0 comments on commit 3f1a203

Please sign in to comment.