diff --git a/docker-compose.yml b/docker-compose.yml index 38dfd15..896c343 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,8 @@ -version: '3.8' - services: + postgres: image: postgres:15 - container_name: my_postgres + container_name: vod_postgres environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword @@ -13,6 +12,31 @@ services: volumes: - postgres_data:/var/lib/postgresql/data + backend: + build: + context: . + dockerfile: src/main/Dockerfile + container_name: vod_backend + depends_on: + - postgres + env_file: + - .env + ports: + - "8080:8080" + restart: unless-stopped + + frontend: + build: + context: ./frontend + dockerfile: Dockerfile + container_name: vod_frontend + env_file: + - .env + depends_on: + - backend + ports: + - "5173:5173" + restart: unless-stopped volumes: postgres_data: \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..0561dd7 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,9 @@ +FROM node:20-alpine + +WORKDIR /app +COPY package*.json ./ +RUN npm install + +COPY . . +EXPOSE 5173 +CMD ["npm", "run", "dev"] \ No newline at end of file diff --git a/src/main/Dockerfile b/src/main/Dockerfile new file mode 100644 index 0000000..3b0af77 --- /dev/null +++ b/src/main/Dockerfile @@ -0,0 +1,21 @@ +# Build stage +FROM maven:3.9.6-eclipse-temurin-21 AS builder +WORKDIR /app +COPY pom.xml . +COPY src ./src +RUN mvn clean package -DskipTests + + +# Run stage +FROM eclipse-temurin:21-jdk + +# dependencies +RUN apt-get update && \ + apt-get install -y ffmpeg && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /app +COPY --from=builder /app/target/*.jar app.jar +EXPOSE 8080 +ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file