Skip to content

Commit c571882

Browse files
committed
Add devcontainer setup with Java 25, DynamoDB local, and development tools
- Configure devcontainer with Maven 3.9.11 and Java 25 LTS - Add local DynamoDB instance for development and testing - Install AWS CLI and Claude Code in development environment - Create comprehensive .gitignore for Java projects on macOS - Set up Docker Compose configuration with proper networking
1 parent 4c82c5a commit c571882

File tree

5 files changed

+188
-0
lines changed

5 files changed

+188
-0
lines changed

.devcontainer/Dockerfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Use official Maven image with Eclipse Temurin Java 25
2+
FROM maven:3.9.11-eclipse-temurin-25
3+
4+
# Install unzip and other tools needed
5+
RUN apt-get update && apt-get install -y \
6+
unzip \
7+
&& apt-get clean \
8+
&& rm -rf /var/lib/apt/lists/*
9+
10+
# Install Claude Code
11+
RUN curl -fsSL https://claude.ai/install.sh | bash
12+
13+
# Install AWS CLI
14+
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
15+
&& unzip awscliv2.zip \
16+
&& ./aws/install \
17+
&& rm -rf awscliv2.zip aws
18+
19+
# Maven images typically run as root by default, which is fine for devcontainers

.devcontainer/devcontainer.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "DynamoDB Toolkit Dev Environment",
3+
"dockerComposeFile": "docker-compose.yml",
4+
"service": "devcontainer",
5+
"workspaceFolder": "/workspace",
6+
"customizations": {
7+
"vscode": {
8+
"extensions": [
9+
"vscjava.vscode-java-pack",
10+
"vscjava.vscode-maven",
11+
"redhat.java"
12+
]
13+
}
14+
},
15+
"postCreateCommand": "echo 'Java development environment with Claude Code ready'",
16+
"remoteUser": "root"
17+
}

.devcontainer/docker-compose.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
version: '3.8'
2+
3+
services:
4+
devcontainer:
5+
build:
6+
context: .
7+
dockerfile: Dockerfile
8+
volumes:
9+
- ../..:/workspaces:cached
10+
working_dir: /workspace
11+
command: sleep infinity
12+
depends_on:
13+
- dynamodb-local
14+
environment:
15+
AWS_ACCESS_KEY_ID: dummy
16+
AWS_SECRET_ACCESS_KEY: dummy
17+
AWS_DEFAULT_REGION: us-east-1
18+
DYNAMODB_ENDPOINT: http://dynamodb-local:8000
19+
20+
dynamodb-local:
21+
image: amazon/dynamodb-local:latest
22+
command: ["-jar", "DynamoDBLocal.jar", "-sharedDb", "-inMemory"]
23+
ports:
24+
- "8083:8000"

.gitignore

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Claude Code
2+
.claude/
3+
4+
# Compiled class file
5+
*.class
6+
7+
# Log file
8+
*.log
9+
10+
# BlueJ files
11+
*.ctxt
12+
13+
# Mobile Tools for Java (J2ME)
14+
.mtj.tmp/
15+
16+
# Package Files #
17+
*.jar
18+
*.war
19+
*.nar
20+
*.ear
21+
*.zip
22+
*.tar.gz
23+
*.rar
24+
25+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
26+
hs_err_pid*
27+
replay_pid*
28+
29+
# Maven
30+
target/
31+
pom.xml.tag
32+
pom.xml.releaseBackup
33+
pom.xml.versionsBackup
34+
pom.xml.next
35+
release.properties
36+
dependency-reduced-pom.xml
37+
buildNumber.properties
38+
.mvn/timing.properties
39+
.mvn/wrapper/maven-wrapper.jar
40+
41+
# Gradle
42+
.gradle
43+
build/
44+
!gradle/wrapper/gradle-wrapper.jar
45+
!**/src/main/**/build/
46+
!**/src/test/**/build/
47+
48+
# IntelliJ IDEA
49+
.idea/
50+
*.iws
51+
*.iml
52+
*.ipr
53+
54+
# Eclipse
55+
.apt_generated
56+
.classpath
57+
.factorypath
58+
.project
59+
.settings
60+
.springBeans
61+
.sts4-cache
62+
63+
# NetBeans
64+
/nbproject/private/
65+
/nbbuild/
66+
/dist/
67+
/nbdist/
68+
/.nb-gradle/
69+
70+
# VS Code
71+
.vscode/
72+
73+
# Mac OS
74+
.DS_Store
75+
.DS_Store?
76+
._*
77+
.Spotlight-V100
78+
.Trashes
79+
ehthumbs.db
80+
Thumbs.db
81+
82+
# Temporary files
83+
*.tmp
84+
*.temp
85+
86+
# Environment variables
87+
.env
88+
.env.local
89+
.env.development.local
90+
.env.test.local
91+
.env.production.local
92+
93+
# Application logs
94+
logs/
95+
*.log.*
96+
97+
# JUnit test results
98+
TEST-*.xml
99+
100+
# Coverage reports
101+
*.exec
102+
.jacoco/
103+
104+
# Sonar
105+
.sonar/
106+
.scannerwork/
107+
108+
# Spring Boot
109+
!**/src/main/**/target/
110+
!**/src/test/**/target/
111+
112+
# Node modules (if using any Node.js tools)
113+
node_modules/
114+
npm-debug.log*
115+
yarn-debug.log*
116+
yarn-error.log*

docker-compose.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: '3.8'
2+
3+
services:
4+
dynamodb-local:
5+
image: amazon/dynamodb-local:latest
6+
command: ["-jar", "DynamoDBLocal.jar", "-sharedDb", "-inMemory"]
7+
ports:
8+
- "8000:8000"
9+
environment:
10+
- AWS_ACCESS_KEY_ID=dummy
11+
- AWS_SECRET_ACCESS_KEY=dummy
12+
- AWS_DEFAULT_REGION=us-east-1

0 commit comments

Comments
 (0)