diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index ce1dafd..0000000 --- a/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -scripts/ - diff --git a/.drone.yml b/.drone.yml index fd544c5..b8e499a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,26 +7,28 @@ trigger: - push steps: - - name: Build and Push - image: plugins/docker + # Étape 1 : Construire et pousser l'image Docker + - name: docker-build-and-push + image: hub.codefirst.iut.uca.fr/clement.freville2/plugins/kaniko:latest settings: dockerfile: docker/Dockerfile context: . registry: hub.codefirst.iut.uca.fr - mirror: https://proxy.iut.uca.fr:8443 - repo: hub.codefirst.iut.uca.fr/wikifantasy/wf-database + repo: hub.codefirst.iut.uca.fr/votreutilisateur/wf-database username: from_secret: SECRET_REGISTRY_USERNAME password: from_secret: SECRET_REGISTRY_PASSWORD + registry_mirrors: https://proxy.iut.uca.fr:8443 - - name: Deploy - image: hub.codefirst.iut.uca.fr/celeste.barbosa/codefirst-dockerproxy-clientdrone + # Étape 2 : Déployer le conteneur Docker + - name: deploy-container + image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest environment: - IMAGENAME: hub.codefirst.iut.uca.fr/wikifantasy/wf-database - CONTAINERNAME: WF_DATABASE + IMAGENAME: hub.codefirst.iut.uca.fr/votreutilisateur/wf-database:latest + CONTAINERNAME: wf-database COMMAND: create - OVERWRITE: false + OVERWRITE: true PRIVATE: true CODEFIRST_CLIENTDRONE_ENV_POSTGRES_PASSWORD: from_secret: POSTGRES_PASSWORD @@ -34,3 +36,5 @@ steps: from_secret: POSTGRES_DB CODEFIRST_CLIENTDRONE_ENV_POSTGRES_USER: from_secret: POSTGRES_USER + depends_on: + - docker-build-and-push diff --git a/docker-entrypoint-initdb.d/init.sql b/docker-entrypoint-initdb.d/init.sql deleted file mode 100644 index aef47bf..0000000 --- a/docker-entrypoint-initdb.d/init.sql +++ /dev/null @@ -1,127 +0,0 @@ --- Suppression des tables -DROP TABLE IF EXISTS Commentary; -DROP TABLE IF EXISTS Favorite; -DROP TABLE IF EXISTS DailyQuote; -DROP TABLE IF EXISTS Quote; -DROP TABLE IF EXISTS Caracter; -DROP TABLE IF EXISTS Source; -DROP TABLE IF EXISTS Record_quiz; -DROP TABLE IF EXISTS Quiz_Question; -DROP TABLE IF EXISTS Quiz; -DROP TABLE IF EXISTS Question; -DROP TABLE IF EXISTS Admin; -DROP TABLE IF EXISTS Users; -DROP TABLE IF EXISTS Image; - --- Création des tables - -CREATE TABLE Image( - id_img NUMERIC PRIMARY KEY, - imgPath varchar(100) NOT NULL UNIQUE -); - -CREATE TABLE Users( - id_user SERIAL PRIMARY KEY, - username varchar(50) NOT NULL, - email varchar(50) NOT NULL, - password varchar(100) NOT NULL, - img NUMERIC NOT NULL, - creation date NOT NULL, - CONSTRAINT unique_col UNIQUE (email), - CONSTRAINT fk_img FOREIGN KEY(img) REFERENCES Image(id_img) -); - -CREATE TABLE Admin( - users SERIAL PRIMARY KEY, - CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user) -); - -CREATE TABLE Question( - id_question SERIAL PRIMARY KEY, - texte text NOT NULL UNIQUE, - answerA varchar(30) NOT NULL, - answerB varchar(30) NOT NULL, - answerC varchar(30) NOT NULL, - answerD varchar(30) NOT NULL, - cAnswer varchar(30) NOT NULL, - CONSTRAINT check_cAnswer CHECK (cAnswer = answerA OR cAnswer = answerB OR cAnswer = answerC OR cAnswer = answerD) -); - -CREATE TABLE Quiz( - id_quiz SERIAL PRIMARY KEY, - nb_quest numeric -); - -CREATE TABLE Quiz_Question( - quiz SERIAL NOT NULL, - question SERIAL NOT NULL, - PRIMARY KEY (quiz, question), - CONSTRAINT fk_quiz FOREIGN KEY(quiz) REFERENCES Quiz(id_quiz), - CONSTRAINT fk_question FOREIGN KEY(question) REFERENCES Question(id_question) -); - -CREATE TABLE Record_quiz( - users SERIAL NOT NULL, - quiz SERIAL NOT NULL, - nbPoint numeric DEFAULT '0', - timeQ numeric DEFAULT '0', - PRIMARY KEY (users, quiz), - CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user), - CONSTRAINT fk_quiz FOREIGN KEY(quiz) REFERENCES Quiz(id_quiz), - CONSTRAINT err_nbPoint CHECK(nbPoint >= 0), - CONSTRAINT err_timeQ CHECK(timeQ >= 0) -); - -CREATE TABLE Source( - id_source SERIAL PRIMARY KEY, - title varchar(100) NOT NULL, - dateS numeric(4) NOT NULL -); - -CREATE TABLE Caracter( - id_caracter SERIAL PRIMARY KEY, - caracter varchar(100) NOT NULL, - id_img NUMERIC NOT NULL -); - -CREATE TABLE Quote( - id_quote SERIAL PRIMARY KEY, - content text NOT NULL, - likes numeric DEFAULT '0', - langue char(2) NOT NULL, - isValide boolean NOT NULL DEFAULT 'false', - reason varchar(100) NOT NULL, - id_caracter SERIAL NOT NULL, - id_source SERIAL NOT NULL, - id_user_verif SERIAL NOT NULL, - CONSTRAINT fk_caracter FOREIGN KEY(id_caracter) REFERENCES Caracter(id_caracter), - CONSTRAINT fk_source FOREIGN KEY(id_source) REFERENCES Source(id_source), - CONSTRAINT fk_userverif FOREIGN KEY(id_user_verif) REFERENCES Users(id_user), - CONSTRAINT err_nbLike CHECK (likes >= 0), - CONSTRAINT err_language CHECK (langue = 'fr' OR langue = 'en') -); - -CREATE TABLE DailyQuote( - citation_id INT PRIMARY KEY, - FOREIGN KEY (citation_id) REFERENCES Quote(id_quote) ON DELETE CASCADE -); - - -CREATE TABLE Favorite( - users SERIAL NOT NULL, - quote SERIAL NOT NULL, - PRIMARY KEY (users, quote), - CONSTRAINT fk_quote FOREIGN KEY(quote) REFERENCES Quote(id_quote), - CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user) -); - -CREATE TABLE Commentary( - id_comment SERIAL PRIMARY KEY, - quote SERIAL NOT NULL, - users SERIAL NOT NULL, - dateC date NOT NULL, - comment text NOT NULL, - CONSTRAINT fk_quote FOREIGN KEY(quote) REFERENCES Quote(id_quote), - CONSTRAINT fk_user FOREIGN KEY(users) REFERENCES Users(id_user) -); - diff --git a/docker/Dockerfile b/docker/Dockerfile index 4f9724a..a035a57 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM postgres:17-alpine3.20 AS base # Copier le fichier init.sql depuis le dossier docker-entrypoint-initdb.d -COPY docker-entrypoint-initdb.d/init.sql /docker-entrypoint-initdb.d/ +COPY scripts/init.sql /docker-entrypoint-initdb.d/ # Exposer le port PostgreSQL par défaut EXPOSE 5432