Skip to content

Commit f51796c

Browse files
Dockerfile (#2)
1 parent 50aff54 commit f51796c

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

Dockerfile

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Многоступенчатая сборка
2+
# Этап 1: Сборка приложения
3+
FROM eclipse-temurin:17-jdk-jammy AS build
4+
WORKDIR /app
5+
6+
RUN apt-get update && \
7+
apt-get install -y maven
8+
9+
COPY pom.xml .
10+
RUN mvn dependency:go-offline -B
11+
12+
COPY src ./src
13+
RUN mvn clean package -DskipTests
14+
15+
FROM eclipse-temurin:17-jre-jammy
16+
WORKDIR /app
17+
RUN useradd -m -d /app -s /bin/bash -u 1000 appuser && \
18+
chown -R appuser:appuser /app
19+
20+
COPY --from=build --chown=appuser:appuser /app/target/techradar-backend-*.jar app.jar
21+
USER appuser
22+
EXPOSE 8080 8090 10260
23+
ENTRYPOINT ["java", "-jar", "app.jar"]
24+

docker-compose.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
services:
2+
techradar-postgres:
3+
image: postgres:15-alpine
4+
container_name: techradar-postgres
5+
environment:
6+
POSTGRES_DB: ${TECHRADAR_POSTGRES_DB:-techradar}
7+
POSTGRES_USER: ${TECHRADAR_POSTGRES_USER:-postgres}
8+
POSTGRES_PASSWORD: ${TECHRADAR_POSTGRES_PASSWORD:-postgres}
9+
ports:
10+
- "${TECHRADAR_POSTGRES_NODEPORT:-5432}:5432"
11+
volumes:
12+
- techradar-postgres:/var/lib/postgresql/data
13+
healthcheck:
14+
test: ["CMD-SHELL", "pg_isready -U ${TECHRADAR_POSTGRES_USER:-postgres}"]
15+
interval: 10s
16+
timeout: 5s
17+
retries: 5
18+
networks:
19+
- beeatlas-network
20+
21+
techradar-backend:
22+
build:
23+
context: .
24+
dockerfile: Dockerfile
25+
container_name: techradar-backend-app
26+
depends_on:
27+
techradar-postgres:
28+
condition: service_healthy
29+
environment:
30+
SPRING_DATASOURCE_URL: jdbc:postgresql://${TECHRADAR_POSTGRES_HOST:-techradar-postgres}:5432/${TECHRADAR_POSTGRES_DB:-techradar}
31+
SPRING_DATASOURCE_USERNAME: ${TECHRADAR_POSTGRES_USER:-postgres}
32+
SPRING_DATASOURCE_PASSWORD: ${TECHRADAR_POSTGRES_PASSWORD:-postgres}
33+
SPRING_JPA_HIBERNATE_DDL_AUTO: none
34+
SPRING_JPA_PROPERTIES_HIBERNATE_DEFAULT_SCHEMA: techradar
35+
SPRING_FLYWAY_DEFAULT_SCHEMA: techradar
36+
SPRING_FLYWAY_BASELINE_ON_MIGRATE: "true"
37+
SPRING_FLYWAY_CLEAN_DISABLED: "true"
38+
healthcheck:
39+
test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"]
40+
interval: 5s
41+
timeout: 3s
42+
retries: 15
43+
ports:
44+
- "${TECHRADAR_SERVICE_PORT:-8081}:8080"
45+
networks:
46+
- beeatlas-network
47+
restart: unless-stopped
48+
49+
networks:
50+
beeatlas-network:
51+
driver: bridge
52+
53+
volumes:
54+
techradar-postgres:

0 commit comments

Comments
 (0)