diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 687c74ae0c70116dc85e19f082219d10c26629f3..01c96747d9cbb037151d35a56d36e55e0e2afecb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,6 +25,32 @@ build-decideapp: only: - tags +deploy-decidedb: + image: docker:latest + stage: deploy + services: + - docker:dind + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/decidedb/db:$CI_COMMIT_REF_NAME" decidedb/db + - docker push "$CI_REGISTRY_IMAGE/decidedb/db:$CI_COMMIT_REF_NAME" + only: + - tags + +deploy-dbapi: + image: docker:latest + stage: deploy + services: + - docker:dind + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/decidedb/api:$CI_COMMIT_REF_NAME" decidedb/api + - docker push "$CI_REGISTRY_IMAGE/decidedb/api:$CI_COMMIT_REF_NAME" + only: + - tags + deploy-score: image: docker:latest stage: deploy diff --git a/decideapp/.env b/decideapp/.env index da4ba0e1575de402e7bdff1c3bc3e89124bbddbd..9c7cd44366921c61cf645a46915cd5719f43b4aa 100644 --- a/decideapp/.env +++ b/decideapp/.env @@ -1,3 +1,4 @@ REACT_APP_STRAPI_SERVER_URL=/ REACT_APP_LOGIN_SERVER_URL=/ -REACT_APP_SCORE_SERVER_URL=/ \ No newline at end of file +REACT_APP_SCORE_SERVER_URL=/ +REACT_APP_DBAPI_URL=/ \ No newline at end of file diff --git a/decideapp/src/pages/User.tsx b/decideapp/src/pages/User.tsx index d9113320b8e28b8bb59678263665a77be0405fb4..5ce874842a1dce1ca8e5d1c2746a9dfdf63359c3 100644 --- a/decideapp/src/pages/User.tsx +++ b/decideapp/src/pages/User.tsx @@ -1,5 +1,17 @@ import React, { useContext } from "react"; -import {IonHeader, IonToolbar, IonTitle, IonContent, IonPage, IonButtons, IonMenuButton } from '@ionic/react'; +import { + IonHeader, + IonToolbar, + IonTitle, + IonContent, + IonPage, + IonButtons, + IonMenuButton, + IonList, + IonButton, + IonItem, + IonInput, +} from '@ionic/react'; import "./User.css"; import UserContext from '../context/UserContext'; @@ -9,11 +21,31 @@ const User: React.FC = () => { // This page is reached via the /login endpoint which is redirected to the CEH proxy server. // So a user will only arrive at this page if they have successfully logged in, in which // case their username should be available in URL or header/ + const { username, setUsername } = useContext(UserContext) + + const getUserDetails: Function = () => { + console.log('username', username) + + fetch(`${process.env.REACT_APP_DBAPI_URL}user`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + }, + }).then((response) => { + if (response.status !== 200) { + throw new Error(String(response.status)) + } else { + return response.json() + } + }).then((json) => { + console.log('Request successful', json) + }).catch((error) => { + console.log('error', error) + }).finally(() => { + // Cleanup + }) + } - //const { username, setUsername } = useContext(UserContext) - const { username } = useContext(UserContext) - //setUsername("anon") - return ( <IonPage id="login-page"> <IonHeader> @@ -31,6 +63,14 @@ const User: React.FC = () => { <p> Details... </p> + <IonList> + <IonItem> + <IonInput value={username} placeholder="Test - enter username" onIonChange={e => setUsername(e.detail.value!)}></IonInput> + </IonItem> + <IonItem> + <IonButton color="primary" onClick={(e) => getUserDetails()} >Get User</IonButton> + </IonItem> + </IonList> </IonContent> </IonPage> ); diff --git a/decidedb/db/dockerfile b/decidedb/db/dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..d2566e20b9f7f8330af870e567cf6bc531de10d5 --- /dev/null +++ b/decidedb/db/dockerfile @@ -0,0 +1,5 @@ +FROM mysql/mysql-server + +COPY my.cnf /etc/my.cnf + +# docker build -t decidedb . diff --git a/docker-compose.yml b/docker-compose.yml index a315a726c6ba93b1e012482e56d8bc66408e1289..cbd586e39e0a49d61d53305a470710b92905a590 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,21 +15,8 @@ services: # ports: # - "4000:80" - # postgresql: - # image: postgres - # container_name: pg-docker - # ports: - # - "5400:5432" - # environment: - # - POSTGRES_USER=docker - # - POSTGRES_PASSWORD=docker - # volumes: - # - ./decidedb/db/postgres.conf:/etc/postgresql/postgresql.conf - # command: postgres -c config_file=/etc/postgresql/postgresql.conf - # restart: always - db: - image: mysql/mysql-server + image: decidedb restart: always container_name: decidedb @@ -48,9 +35,7 @@ services: expose: # Opens port 3306 on the container - '3306' - # Where our data will be persisted volumes: - - ./decidedb/db/my.cnf:/etc/my.cnf - ./decidedb/db/data:/var/lib/mysql networks: - decide-net