Skip to content

Commit a6a9bb7

Browse files
committed
.
0 parents  commit a6a9bb7

File tree

164 files changed

+4644
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

164 files changed

+4644
-0
lines changed

.docker/.dockerignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
*.bat
2+
*.dockerignore
3+
*.editorconfig
4+
*.gitattributes
5+
*.gitignore
6+
*.iml
7+
*.md
8+
*.yml
9+
.git/
10+
.github/
11+
.idea/
12+
.vscode/
13+
target/

.docker/docker-compose.yaml

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# docker compose up --detach --build --force-recreate --remove-orphans
2+
3+
name: java
4+
services:
5+
application:
6+
image: application
7+
container_name: application
8+
depends_on:
9+
- kafka
10+
- localstack
11+
- mongo
12+
- postgres
13+
- elk-logstash
14+
build:
15+
context: ..
16+
dockerfile: .docker/dockerfile
17+
ports:
18+
- "8090:8080"
19+
environment:
20+
#SPRING_PROFILES_ACTIVE: production
21+
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/database
22+
SPRING_DATASOURCE_USERNAME: admin
23+
SPRING_DATASOURCE_PASSWORD: password
24+
SPRING_DATA_MONGODB_URI: mongodb://admin:password@mongo:27017/database?authSource=admin
25+
SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:9094
26+
AWS_ENDPOINT: http://localstack:4566
27+
AWS_REGION: us-east-1
28+
AWS_ACCESS_KEY_ID: test
29+
AWS_SECRET_ACCESS_KEY: test
30+
ELK_LOGSTASH: elk-logstash:5000
31+
FEIGN_CLIENTS_JSONPLACEHOLDER_URL: https://jsonplaceholder.typicode.com
32+
elk-elasticsearch:
33+
image: docker.elastic.co/elasticsearch/elasticsearch:9.0.0
34+
container_name: elk-elasticsearch
35+
ports:
36+
- "9200:9200"
37+
environment:
38+
- discovery.type=single-node
39+
- xpack.security.enabled=false
40+
- ES_JAVA_OPTS=-Xms512m -Xmx512m
41+
elk-logstash:
42+
image: docker.elastic.co/logstash/logstash:9.0.0
43+
container_name: elk-logstash
44+
depends_on:
45+
- elk-elasticsearch
46+
ports:
47+
- "5000:5000"
48+
volumes:
49+
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
50+
elk-kibana:
51+
image: docker.elastic.co/kibana/kibana:9.0.0
52+
container_name: elk-kibana
53+
depends_on:
54+
- elk-elasticsearch
55+
ports:
56+
- "5601:5601"
57+
environment:
58+
- ELASTICSEARCH_HOSTS=http://elk-elasticsearch:9200
59+
elk-apm-server:
60+
image: docker.elastic.co/apm/apm-server:9.0.0
61+
container_name: elk-apm
62+
depends_on:
63+
- elk-elasticsearch
64+
- elk-kibana
65+
ports:
66+
- "8200:8200"
67+
environment:
68+
- output.elasticsearch.hosts=["http://elk-elasticsearch:9200"]
69+
- apm-server.host=0.0.0.0:8200
70+
- apm-server.auth.anonymous.enabled=true
71+
- apm-server.kibana.enabled=true
72+
- apm-server.kibana.host=http://elk-kibana:5601
73+
kafka:
74+
image: apache/kafka
75+
container_name: kafka
76+
ports:
77+
- "9092:9092"
78+
environment:
79+
KAFKA_NODE_ID: 1
80+
KAFKA_PROCESS_ROLES: broker,controller
81+
KAFKA_LISTENERS: CONTROLLER://:9093,PLAINTEXT://:9094,EXTERNAL://:9092
82+
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9094,EXTERNAL://localhost:9092
83+
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
84+
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT
85+
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
86+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
87+
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
88+
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
89+
kafka-admin:
90+
image: obsidiandynamics/kafdrop
91+
container_name: kafka-admin
92+
depends_on:
93+
- kafka
94+
ports:
95+
- "9000:9000"
96+
environment:
97+
KAFKA_BROKERCONNECT: kafka:9094
98+
localstack:
99+
image: localstack/localstack
100+
container_name: localstack
101+
ports:
102+
- "4566:4566"
103+
volumes:
104+
- /var/run/docker.sock:/var/run/docker.sock
105+
- ./localstack.sh:/etc/localstack/init/ready.d/localstack.sh
106+
environment:
107+
- SERVICES=sqs,sqs-query,s3
108+
mongo:
109+
image: mongo
110+
container_name: mongo
111+
ports:
112+
- "27017:27017"
113+
volumes:
114+
- mongo:/data/db
115+
environment:
116+
MONGO_INITDB_ROOT_USERNAME: admin
117+
MONGO_INITDB_ROOT_PASSWORD: password
118+
mongo-admin:
119+
image: mongo-express
120+
container_name: mongo-admin
121+
depends_on:
122+
- mongo
123+
ports:
124+
- "27018:8081"
125+
environment:
126+
ME_CONFIG_MONGODB_URL: mongodb://admin:password@mongo:27017
127+
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
128+
ME_CONFIG_MONGODB_ADMINPASSWORD: password
129+
ME_CONFIG_BASICAUTH: false
130+
postgres:
131+
image: postgres
132+
container_name: postgres
133+
ports:
134+
- "5432:5432"
135+
volumes:
136+
- postgres:/var/lib/postgresql/data
137+
environment:
138+
POSTGRES_DB: database
139+
POSTGRES_USER: admin
140+
POSTGRES_PASSWORD: password
141+
postgres-admin:
142+
image: dpage/pgadmin4
143+
container_name: postgres-admin
144+
depends_on:
145+
- postgres
146+
ports:
147+
- "5433:80"
148+
volumes:
149+
- ./postgres-admin.json:/pgadmin4/servers.json
150+
- postgres-admin:/var/lib/pgadmin
151+
environment:
152+
PGADMIN_DEFAULT_EMAIL: admin@admin.com
153+
PGADMIN_DEFAULT_PASSWORD: password
154+
PGADMIN_CONFIG_SERVER_MODE: "False"
155+
PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: "False"
156+
volumes:
157+
mongo:
158+
postgres:
159+
postgres-admin:

.docker/dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM eclipse-temurin:25-jdk-alpine AS build
2+
RUN apk add --no-cache maven
3+
WORKDIR /source
4+
COPY source/pom.xml .
5+
RUN mvn dependency:go-offline -X
6+
COPY source .
7+
RUN mvn clean package -DskipTests -X
8+
9+
FROM eclipse-temurin:25-jre-alpine
10+
WORKDIR /app
11+
COPY --from=build /source/target/*.jar app.jar
12+
EXPOSE 8090
13+
ENTRYPOINT ["java", "-jar", "app.jar"]

.docker/localstack.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
awslocal sqs create-queue --queue-name queue
3+
awslocal s3 mb s3://bucket

.docker/logstash.conf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
input {
2+
tcp {
3+
port => 5000
4+
codec => json
5+
}
6+
}
7+
8+
output {
9+
elasticsearch {
10+
hosts => ["http://elk-elasticsearch:9200"]
11+
index => "application-%{+YYYY-MM-dd}"
12+
}
13+
}

.docker/postgres-admin.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"Servers": {
3+
"Database": {
4+
"Group": "Servers",
5+
"Name": "Docker",
6+
"Host": "postgres",
7+
"Port": 5432,
8+
"MaintenanceDB": "postgres",
9+
"Username": "admin",
10+
"Password": "password",
11+
"SSLMode": "prefer",
12+
"Favorite": true
13+
}
14+
}
15+
}

.editorconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[*]
2+
charset = utf-8
3+
end_of_line = lf
4+
indent_size = 4
5+
indent_style = space
6+
insert_final_newline = true
7+
max_line_length = 500
8+
tab_width = 4
9+
trim_trailing_whitespace = true

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
* text=auto
2+
*.java diff=java

.github/workflows/build.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: build
2+
on:
3+
push:
4+
branches: [main]
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout
10+
uses: actions/checkout@v5
11+
12+
- name: Java Setup
13+
uses: actions/setup-java@v5
14+
with:
15+
java-version: 25
16+
distribution: temurin
17+
cache: maven
18+
19+
- name: Java Publish
20+
run: mvn -B clean package --file source/pom.xml
21+
22+
- name: Artifact Upload
23+
uses: actions/upload-artifact@v4
24+
with:
25+
name: app
26+
path: source/target/*.jar

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*.bat
2+
*.iml
3+
.idea
4+
.vscode
5+
target

0 commit comments

Comments
 (0)