Sign inSign up

hhftechnology/nodejs-min-amd64

By hhftechnology

•Updated almost 2 years ago

Image
Languages & frameworks
0

1.0K

hhftechnology/nodejs-min-amd64 repository overview

⁠Node.js on Alpine Linux Docker Images

Docker Pulls Alpine Version Node.js Version GitHub release

This guide provides detailed instructions for using the HHF Technology Node.js Docker images, built on Alpine Linux with minimal installation for different architectures.

⁠Available Images

⁠AMD64 (x86_64)
docker pull hhftechnology/nodejs-min-amd64
⁠ARM64v8 (aarch64)
docker pull hhftechnology/nodejs-min-arm64v8
⁠ARM32v7 (armhf)
docker pull hhftechnology/nodejs-min-arm32v7

⁠Features

  • Minimal Node.js installation based on Alpine Linux
  • Multi-architecture support
  • Built on HHF Technology's Alpine base image
  • S6 overlay for process management
  • Built-in monitoring with Zabbix agent
  • Fail2ban for security
  • Fluent-bit for log shipping
  • MSMTP for email capabilities
  • Cron scheduling support
  • Dynamic UID/GID permission management

⁠Quick Start

# 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

⁠Container Configuration

⁠Environment Variables
VariableDefaultDescription
PUID1000User ID for permission management
PGID1000Group ID for permission management
TZUTCContainer timezone
ZABBIX_HOSTNAMEnodejs-containerHostname for Zabbix monitoring
NODE_ENVproductionNode.js environment
⁠Volumes

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

⁠Usage Examples

⁠Basic Node.js Application
# 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
⁠Production Application Example
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

⁠Dockerfile Examples

⁠Production Environment
# 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"]
⁠Multi-arch Build Example
# 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"]

⁠Performance Optimization

⁠Memory Management
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

⁠Monitoring and Logging

⁠Health Check Configuration
HEALTHCHECK --interval=30s --timeout=3s \
  CMD node healthcheck.js || exit 1
⁠Logging Configuration
# 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

⁠Troubleshooting

Common issues and solutions:

  1. 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/')
    
  2. Node.js Memory Issues

    # Increase Node.js memory limit
    docker run -d --name nodejs-app node --max-old-space-size=2048 app.js
    
  3. Permission Issues

    # Fix npm cache permissions
    docker exec nodejs-app chown -R node:node /app/node_modules
    

⁠Support

⁠Security

The images are regularly scanned for vulnerabilities and updated. Security reports are available in the repository.

⁠License

MIT License - see LICENSE⁠ for details.

Tag summary

Content type

Image

Digest

sha256:905272493…

Size

71.5 MB

Last updated

almost 2 years ago

docker pull hhftechnology/nodejs-min-amd64