1.0K
This guide provides detailed instructions for using the HHF Technology Node.js Docker images, built on Alpine Linux with minimal installation for different architectures.
docker pull hhftechnology/nodejs-min-amd64
docker pull hhftechnology/nodejs-min-arm64v8
docker pull hhftechnology/nodejs-min-arm32v7
# For AMD64 systems
docker run -it hhftechnology/nodejs-min-amd64 node --version
# For ARM64v8 systems
docker run -it hhftechnology/nodejs-min-arm64v8 node --version
# For ARM32v7 systems
docker run -it hhftechnology/nodejs-min-arm32v7 node --version
| Variable | Default | Description |
|---|---|---|
PUID | 1000 | User ID for permission management |
PGID | 1000 | Group ID for permission management |
TZ | UTC | Container timezone |
ZABBIX_HOSTNAME | nodejs-container | Hostname for Zabbix monitoring |
NODE_ENV | production | Node.js environment |
Important directories that can be mounted for persistent storage:
# Application Directory
-v /path/to/app:/app
# Node Modules
-v /path/to/node_modules:/app/node_modules
# Log Directory
-v /path/to/logs:/var/log
# NPM Cache
-v /path/to/npm-cache:/root/.npm
# AMD64
docker run -d \
--name nodejs-app \
-v $(pwd):/app \
-w /app \
hhftechnology/nodejs-min-amd64 \
node app.js
# ARM64v8
docker run -d \
--name nodejs-app \
-v $(pwd):/app \
-w /app \
hhftechnology/nodejs-min-arm64v8 \
node app.js
# ARM32v7
docker run -d \
--name nodejs-app \
-v $(pwd):/app \
-w /app \
hhftechnology/nodejs-min-arm32v7 \
node app.js
docker run -d \
--name nodejs-prod \
-v $(pwd):/app \
-w /app \
-e NODE_ENV=production \
-p 80:3000 \
hhftechnology/nodejs-min-amd64 \
node index.js
# Choose the appropriate base image for your architecture
FROM hhftechnology/nodejs-min-amd64
# FROM hhftechnology/nodejs-min-arm64v8
# FROM hhftechnology/nodejs-min-arm32v7
WORKDIR /app
# Copy package files
COPY package*.json ./
# Install production dependencies only
RUN npm ci --only=production
# Copy application code
COPY . .
# Expose port
EXPOSE 3000
# Start production server
CMD ["node", "index.js"]
# Build stage
FROM --platform=$BUILDPLATFORM hhftechnology/nodejs-min-amd64 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Production stage
FROM --platform=$TARGETPLATFORM hhftechnology/nodejs-min-${TARGETARCH}
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY package*.json ./
RUN npm ci --only=production
CMD ["node", "dist/index.js"]
docker run -d \
--name nodejs-optimized \
-v $(pwd):/app \
-w /app \
--memory="512m" \
--memory-swap="1g" \
hhftechnology/nodejs-min-amd64 \
node --max-old-space-size=256 index.js
HEALTHCHECK --interval=30s --timeout=3s \
CMD node healthcheck.js || exit 1
# Enable Fluent-bit logging
docker run -d \
--name nodejs-logged \
-v /path/to/fluent-bit/config:/etc/fluent-bit/conf.d \
hhftechnology/nodejs-min-amd64
Common issues and solutions:
Architecture Mismatch
# Verify your system architecture
uname -m
# Use the appropriate image for your architecture
docker pull hhftechnology/nodejs-min-$(uname -m | sed 's/x86_64/amd64/')
Node.js Memory Issues
# Increase Node.js memory limit
docker run -d --name nodejs-app node --max-old-space-size=2048 app.js
Permission Issues
# Fix npm cache permissions
docker exec nodejs-app chown -R node:node /app/node_modules
The images are regularly scanned for vulnerabilities and updated. Security reports are available in the repository.
MIT License - see LICENSE for details.
Content type
Image
Digest
sha256:905272493…
Size
71.5 MB
Last updated
almost 2 years ago
docker pull hhftechnology/nodejs-min-amd64