The image is used for building and deploying projects.
3.9K
A comprehensive development environment container that includes Java, Node.js, Python, Go, and essential development tools. This container is designed for CI/CD pipelines, development workflows, and deployment automation, providing a complete toolkit for modern software development.
The image is available for linux/amd64 architecture.
docker pull funnyzak/java-nodejs-python-go-etc:latest
# GHCR
docker pull ghcr.io/funnyzak/java-nodejs-python-go-etc:latest
# Aliyun
docker pull registry.cn-beijing.aliyuncs.com/funnyzak/java-nodejs-python-go-etc:latest
Java 8 (OpenJDK 8u432-b06)
/opt/java/jdk8u432-b06JAVA_HOME, JRE_HOME, CLASSPATHNode.js (latest from Debian repositories)
Python 3 (from Debian repositories)
Go 1.23.2
/usr/local/goGOPATH=/go/opt/maven/usr/local/bin/mvn/opt/ossutil/usr/local/bin/ossutilGo Webhook (v2.8.2)
/opt/webhook/usr/local/bin/webhookApprise
Pushoo-CLI
The container supports the following environment variables for configuration:
TZ - Timezone (default: Asia/Shanghai)LANG - System locale (default: C.UTF-8)GO_VERSION - Go version (default: 1.23.2)JAVA_HOME - Java installation path (default: /opt/java/jdk8u432-b06)JRE_HOME - Java Runtime Environment path (default: ${JAVA_HOME}/jre)CLASSPATH - Java classpath (default: .:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JRE_HOME}/lib)GOPATH - Go workspace path (default: /go)PATH - Includes ${JAVA_HOME}/bin:/usr/local/go/binUse as a complete development environment:
docker run -it --rm \
-v $(pwd):/app \
-w /app \
funnyzak/java-nodejs-python-go-etc \
bash
docker run --rm \
-v $(pwd):/app \
-w /app \
funnyzak/java-nodejs-python-go-etc \
mvn clean compile test
docker run --rm \
-v $(pwd):/app \
-w /app \
funnyzak/java-nodejs-python-go-etc \
sh -c "npm install && npm run build"
docker run --rm \
-v $(pwd):/app \
-w /app \
funnyzak/java-nodejs-python-go-etc \
sh -c "pip install -r requirements.txt && python app.py"
docker run --rm \
-v $(pwd):/app \
-w /app \
funnyzak/java-nodejs-python-go-etc \
sh -c "go mod tidy && go build -o app . && ./app"
For projects with multiple language components:
docker run --rm \
-v $(pwd):/workspace \
-w /workspace \
funnyzak/java-nodejs-python-go-etc \
sh -c "
cd backend && mvn clean package &&
cd ../frontend && npm install && npm run build &&
cd ../scripts && pip install -r requirements.txt &&
cd ../tools && go build -o tool . && ./tool
"
version: '3.8'
services:
dev:
image: funnyzak/java-nodejs-python-go-etc
container_name: dev-environment
working_dir: /app
volumes:
- .:/app
- ~/.m2:/root/.m2 # Maven cache
- ~/.npm:/root/.npm # npm cache
- /go/pkg:/go/pkg # Go package cache
environment:
- TZ=Asia/Shanghai
- LANG=C.UTF-8
stdin_open: true
tty: true
version: '3.8'
services:
build:
image: funnyzak/java-nodejs-python-go-etc
container_name: build-pipeline
working_dir: /app
volumes:
- .:/app
- build-cache:/root/.cache
environment:
- MAVEN_OPTS=-Dmaven.repo.local=/root/.m2/repository
- npm_config_cache=/root/.npm
command: |
sh -c "
echo 'Building Java backend...' &&
cd backend && mvn clean package -DskipTests &&
echo 'Building Node.js frontend...' &&
cd ../frontend && npm ci && npm run build &&
echo 'Running Python tests...' &&
cd ../api && pip install -r requirements.txt && python -m pytest &&
echo 'Building Go tools...' &&
cd ../tools && go build -o dist/tool .
"
volumes:
build-cache:
version: '3.8'
services:
webhook:
image: funnyzak/java-nodejs-python-go-etc
container_name: webhook-server
ports:
- "9000:9000"
volumes:
- ./hooks:/etc/webhook
- ./scripts:/scripts
command: webhook -hooks /etc/webhook/hooks.json -verbose
environment:
- TZ=Asia/Shanghai
restart: unless-stopped
# Clean and compile
mvn clean compile
# Run tests
mvn test
# Package application
mvn package
# Skip tests during build
mvn package -DskipTests
# Custom Maven repository
mvn -Dmaven.repo.local=/custom/maven/repo package
# npm
npm install
npm run build
npm test
# yarn
yarn install
yarn build
yarn test
# pnpm
pnpm install
pnpm build
pnpm test
# Install requirements
pip install -r requirements.txt
# Virtual environment
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Run tests
python -m pytest
# Initialize module
go mod init example.com/project
# Download dependencies
go mod tidy
# Build application
go build -o app .
# Run tests
go test ./...
# Build for multiple platforms
GOOS=linux GOARCH=amd64 go build -o app-linux-amd64 .
GOOS=windows GOARCH=amd64 go build -o app-windows-amd64.exe .
# Configure
ossutil config
# List buckets
ossutil ls
# Upload file
ossutil cp file.txt oss://my-bucket/
# Download file
ossutil cp oss://my-bucket/file.txt ./file.txt
# Send simple notification
apprise -t "Title" -b "Message body" "mailto://user:[email protected]"
# Send with configuration file
apprise -c config.ini --body="Build completed successfully"
# Test notification service
apprise -t "Test" -b "Test message" "discord://webhook_id/webhook_token"
# Send DingTalk notification
pushoo -p dingtalk -t "webhook_token" -c "Build completed successfully"
# Send Lark notification
pushoo -p lark -t "webhook_token" -c "Deployment finished"
# Send with title and content
pushoo -p wecom -t "webhook_key" --title "Alert" -c "Server status check"
~/.m2:/root/.m2~/.npm:/root/.npm/go/pkg:/go/pkgEnable verbose output for debugging:
docker run -it --rm \
-v $(pwd):/app \
-w /app \
-e DEBUG=true \
funnyzak/java-nodejs-python-go-etc \
bash
The container is regularly updated with:
Content type
Image
Digest
sha256:c93cf75c3…
Size
596.8 MB
Last updated
11 months ago
docker pull funnyzak/java-nodejs-python-go-etc