1
0
forked from PGL/Clyde

adding compose for launching properly everything

This commit is contained in:
Debucquoy Anthony 2024-03-30 23:23:33 +01:00
parent 9e0db361b8
commit 0e26e1a0db
7 changed files with 68 additions and 42 deletions

View File

@ -1,6 +1,14 @@
## Building phase
FROM gradle:jdk21-alpine
# WORKDIR /app/back
COPY . .
RUN gradle build -x test
## Running Phase
FROM eclipse-temurin:21-jdk-alpine
VOLUME /tmp
VOLUME /cdn
ENV SPRING_PROFILES_ACTIVE=prod
COPY build/libs/backend-0.0.1-SNAPSHOT.jar /app.jar
# ENV SPRING_PROFILES_ACTIVE=prod
COPY build/libs/Clyde-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

View File

@ -0,0 +1,13 @@
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
* For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.6/userguide/multi_project_builds.html in the Gradle documentation.
*/
plugins {
// Apply the foojay-resolver plugin to allow automatic download of JDKs
id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0"
}
rootProject.name = "Clyde"

View File

@ -1,37 +0,0 @@
package ovh.herisson.Clyde;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
@EnableScheduling
public class JdbcConfig {
@Bean
@Profile("!prod")
public DataSource psqlSource(){
DriverManagerDataSource source = new DriverManagerDataSource();
source.setDriverClassName("org.postgresql.Driver");
source.setUrl("jdbc:postgresql://localhost:5442/clyde");
source.setUsername("devel");
source.setPassword("devel");
return source;
}
@Bean
@Profile("prod")
public DataSource psqlSourceProd(){
DriverManagerDataSource source = new DriverManagerDataSource();
source.setDriverClassName("org.postgresql.Driver");
source.setUrl("jdbc:postgresql:clyde?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg&socketFactoryArg=/var/run/postgresql/.s.PGSQL.5432");
source.setUsername("clyde");
return source;
}
}

View File

@ -1,3 +1,12 @@
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.sql.init.mode=always
spring.sql.init.mode=always
# spring.datasource.url=jdbc:postgresql://localhost:5442/clyde
spring.datasource.url=jdbc:postgresql://db:5432/clyde
spring.datasource.username=devel
spring.datasource.password=devel
# spring.config.activate.on-profile=prod
# spring.datasource.url=jdbc:postgresql:clyde?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg&socketFactoryArg=/var/run/postgresql/.s.PGSQL.5432
# spring.datasource.username=clyde

22
compose.yaml Normal file
View File

@ -0,0 +1,22 @@
services:
db:
image: 'postgres:16'
environment:
- 'POSTGRES_DB=clyde'
- 'POSTGRES_USER=devel'
- 'POSTGRES_PASSWORD=devel'
# Uncomment this to allow connections to the db from outside the container
# ports:
# - '5442:5432'
back:
build: backend/.
ports:
- "8080:8080"
ulimits:
nofile:
soft: 65536
hard: 65536
front:
build: frontend/.
ports:
- "8000:8080"

11
frontend/Dockerfile Normal file
View File

@ -0,0 +1,11 @@
# https://v2.vuejs.org/v2/cookbook/dockerize-vuejs-app
FROM node:lts-alpine
RUN npm install -g http-server
WORKDIR /app/front
COPY package*.json ./
RUN npm install
COPY . .
ENV VITE_CLYDE_MODE=container
RUN npm run build
EXPOSE 8080
CMD [ "http-server", "dist" ]

View File

@ -1,7 +1,7 @@
import { getCookie } from '../utils.js'
import { toast } from 'vue3-toastify'
const restURL = import.meta.env.PROD ? "https://clyde.herisson.ovh/api" : "http://localhost:8080"
const restURL = import.meta.env.VITE_CLYDE_MODE === 'container' ? "http://localhost:8080": import.meta.env.DEV ? "http://localhost:8080" : "https://clyde.herisson.ovh/api"
export async function restGet(endPoint) {
return await _rest(endPoint, {method: "GET"});