diff --git a/community_server b/community_server index 9fa87aac2..912c1f4d1 160000 --- a/community_server +++ b/community_server @@ -1 +1 @@ -Subproject commit 9fa87aac2053af28c5efaf57148461d8a8c85195 +Subproject commit 912c1f4d11f30bd5671c7e512fff02602c5d91b4 diff --git a/docker-compose.override.yml b/docker-compose.override.yml index e8668a163..da70e52e1 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,48 +1,61 @@ -version: "3.4" - -services: - ######################################################## - # FRONTEND ############################################# - ######################################################## - frontend: - image: gradido/frontend:development - build: - target: development - environment: - - NODE_ENV="development" - # - DEBUG=true - - NUXT_BUILD=/tmp/nuxt # avoid file permission issues when `rm -rf .nuxt/` - volumes: - # This makes sure the docker container has its own node modules. - # Therefore it is possible to have a different node version on the host machine - - frontend_node_modules:/app/node_modules - # bind the local folder to the docker to allow live reload - - ./frontend:/app - - - - ######################################################## - # BACKEND ############################################## - ######################################################## - ## login server - login-server: - build: - target: login_server_debug - #backend: - # image: ocelotsocialnetwork/backend:development - # build: - # target: development - # environment: - # - NODE_ENV="development" - # - DEBUG=true - # volumes: - # # This makes sure the docker container has its own node modules. - # # Therefore it is possible to have a different node version on the host machine - # - backend_node_modules:/app/node_modules - # # bind the local folder to the docker to allow live reload - # - ./backend:/app - - -volumes: - frontend_node_modules: +version: "3.4" + +services: + ######################################################## + # FRONTEND ############################################# + ######################################################## + frontend: + image: gradido/frontend:development + build: + target: development + environment: + - NODE_ENV="development" + # - DEBUG=true + - NUXT_BUILD=/tmp/nuxt # avoid file permission issues when `rm -rf .nuxt/` + volumes: + # This makes sure the docker container has its own node modules. + # Therefore it is possible to have a different node version on the host machine + - frontend_node_modules:/app/node_modules + # bind the local folder to the docker to allow live reload + - ./frontend:/app + + + + ######################################################## + # BACKEND ############################################## + ######################################################## + ## login server + login-server: + build: + context: ./login_server/ + target: login_server_debug + security_opt: + - seccomp:unconfined + #cap-add:SYS_PTRACE + depends_on: + - mariadb + networks: + - internal-net + ports: + - 1200:1200 + - 1201:1201 + volumes: + - ./configs/login_server:/etc/grd_login + - ./logs:/var/log/grd_login + # image: ocelotsocialnetwork/backend:development + # build: + # target: development + # environment: + # - NODE_ENV="development" + # - DEBUG=true + # volumes: + # # This makes sure the docker container has its own node modules. + # # Therefore it is possible to have a different node version on the host machine + # - backend_node_modules:/app/node_modules + # # bind the local folder to the docker to allow live reload + # - ./backend:/app + + +volumes: + frontend_node_modules: # backend_node_modules: \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 2b792e8d3..776b3088f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,123 +1,123 @@ -# This file defines the production settings. It is overwritten by docker-compose.override.yml, -# which defines the development settings. The override.yml is loaded by default. Therefore it -# is required to explicitly define if you want an production build: -# > docker-compose -f docker-compose.yml up - -version: "3.4" - -services: - ######################################################## - # FRONTEND ############################################# - ######################################################## - frontend: - image: gradido/frontend:latest - build: - context: ./frontend - target: production - networks: - - external-net - #depends_on: - # - backend - ports: - - 8080:8080 - environment: - # Envs used in Dockerfile - # - DOCKER_WORKDIR="/app" - # - PORT="8080" - - BUILD_DATE - - BUILD_VERSION - - BUILD_COMMIT - - NODE_ENV="production" - # Application only envs - #- HOST=0.0.0.0 # This is nuxt specific, alternative value is HOST=webapp - #env_file: - # - ./frontend/.env - - ######################################################### - ## BACKEND ############################################## - ######################################################### - ## mariadb - mariadb: - build: - context: . - dockerfile: ./mariadb/Dockerfile - target: mariadb_DIV - environment: - - MARIADB_ALLOW_EMPTY_PASSWORD=1 - - MARIADB_USER='root' - - MARIADB_DATABASE='gradido_login' - networks: - - internal-net - ports: - - 3306:3306 - volumes: - - db_vol:/var/lib/mysql - - ## login server - login-server: - build: - context: ./login_server/ - target: login_server - depends_on: - - mariadb - networks: - - internal-net - ports: - - 1200:1200 - - 1201:1201 - volumes: - - ./configs/login_server:/etc/grd_login - - ## community server (cakephp with php-fpm and nginx) - community-server: - build: - context: ./community_server/ - environment: - - DB_PASSWORD='' - - DB_USER='root' - - DB_DATABASE='gradido_community' - depends_on: - - mariadb - ports: - - 80:80 - networks: - - internal-net - - external-net - - #backend: - # image: ocelotsocialnetwork/backend:latest - # build: - # context: ./backend - # target: production - # networks: - # - external-net - # - internal-net - # depends_on: - # - neo4j - # ports: - # - 4000:4000 - # volumes: - # - backend_uploads:/app/public/uploads - # environment: - # # Envs used in Dockerfile - # # - DOCKER_WORKDIR="/app" - # # - PORT="4000" - # - BUILD_DATE - # - BUILD_VERSION - # - BUILD_COMMIT - # - NODE_ENV="production" - # # Application only envs - # - DEBUG=false - # - NEO4J_URI=bolt://neo4j:7687 - # - GRAPHQL_URI=http://backend:4000 - # - CLIENT_URI=http://webapp:3000 - # env_file: - # - ./backend/.env - -networks: - external-net: - internal-net: - internal: true - -volumes: +# This file defines the production settings. It is overwritten by docker-compose.override.yml, +# which defines the development settings. The override.yml is loaded by default. Therefore it +# is required to explicitly define if you want an production build: +# > docker-compose -f docker-compose.yml up + +version: "3.4" + +services: + ######################################################## + # FRONTEND ############################################# + ######################################################## + frontend: + image: gradido/frontend:latest + build: + context: ./frontend + target: production + networks: + - external-net + #depends_on: + # - backend + ports: + - 8080:8080 + environment: + # Envs used in Dockerfile + # - DOCKER_WORKDIR="/app" + # - PORT="8080" + - BUILD_DATE + - BUILD_VERSION + - BUILD_COMMIT + - NODE_ENV="production" + # Application only envs + #- HOST=0.0.0.0 # This is nuxt specific, alternative value is HOST=webapp + #env_file: + # - ./frontend/.env + + ######################################################### + ## BACKEND ############################################## + ######################################################### + ## mariadb + mariadb: + build: + context: . + dockerfile: ./mariadb/Dockerfile + target: mariadb_server + environment: + - MARIADB_ALLOW_EMPTY_PASSWORD=1 + - MARIADB_USER='root' + - MARIADB_DATABASE='gradido_login' + networks: + - internal-net + ports: + - 3306:3306 + volumes: + - db_vol:/var/lib/mysql + + ## login server + login-server: + build: + context: ./login_server/ + target: login_server + depends_on: + - mariadb + networks: + - internal-net + ports: + - 1200:1200 + - 1201:1201 + volumes: + - ./configs/login_server:/etc/grd_login + + ## community server (cakephp with php-fpm and nginx) + community-server: + build: + context: ./community_server/ + environment: + - DB_PASSWORD='' + - DB_USER='root' + - DB_DATABASE='gradido_community' + depends_on: + - mariadb + ports: + - 80:80 + networks: + - internal-net + - external-net + + #backend: + # image: ocelotsocialnetwork/backend:latest + # build: + # context: ./backend + # target: production + # networks: + # - external-net + # - internal-net + # depends_on: + # - neo4j + # ports: + # - 4000:4000 + # volumes: + # - backend_uploads:/app/public/uploads + # environment: + # # Envs used in Dockerfile + # # - DOCKER_WORKDIR="/app" + # # - PORT="4000" + # - BUILD_DATE + # - BUILD_VERSION + # - BUILD_COMMIT + # - NODE_ENV="production" + # # Application only envs + # - DEBUG=false + # - NEO4J_URI=bolt://neo4j:7687 + # - GRAPHQL_URI=http://backend:4000 + # - CLIENT_URI=http://webapp:3000 + # env_file: + # - ./backend/.env + +networks: + external-net: + internal-net: + internal: true + +volumes: db_vol: \ No newline at end of file diff --git a/login_server b/login_server index 75c672369..fa936dbc8 160000 --- a/login_server +++ b/login_server @@ -1 +1 @@ -Subproject commit 75c672369f10423a916421c82eb987a8205a376c +Subproject commit fa936dbc80860472a5cbc3d877cf130a0be916b3 diff --git a/mariadb/Dockerfile b/mariadb/Dockerfile index 216c6e166..b04e68709 100644 --- a/mariadb/Dockerfile +++ b/mariadb/Dockerfile @@ -1,74 +1,85 @@ -######################################################################################################### -# Build skeema -######################################################################################################### -FROM golang:1.14.4 as skeema_build -RUN go get -d -v github.com/skeema/skeema -WORKDIR /go/src/github.com/skeema/skeema -RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /go/bin/skeema . - -######################################################################################################### -# mariadb server -######################################################################################################### -From mariadb/server:10.5 as mariadb_server - -#ENV DOCKER_WORKDIR="/docker-entrypoint-initdb.d" -ENV DOCKER_WORKDIR="/skeema" - -# copy skeema -COPY --from=skeema_build /go/bin/skeema /usr/bin/ - -RUN mkdir -p ${DOCKER_WORKDIR} -WORKDIR ${DOCKER_WORKDIR} -#COPY ./mariadb/.skeema . -COPY ./login_server/skeema/ . -#COPY ./mariadb/.skeema.login ./gradido_login/.skeema -COPY ./community_server/skeema/ . - - - -#USER mysql -#VOLUME /var/lib/mysql -#RUN mysqld -#RUN mysql -e 'CREATE DATABASE gradido_login_server;' -#RUN mysql -e 'CREATE DATABASE gradido_community_server;' - - -#RUN skeema push - -######################################################################################################### -# mariadb server selfmade -######################################################################################################### -From alpine:latest as mariadb_DIV - -ENV DOCKER_WORKDIR="/skeema" - - - -#RUN apt-get update \ -# && apt-get -y --no-install-recommends install mariadb-server mariadb-client \ -# && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -RUN apk add mariadb mariadb-client - -# copy skeema -COPY --from=skeema_build /go/bin/skeema /usr/bin/ - -RUN mkdir -p ${DOCKER_WORKDIR} -WORKDIR ${DOCKER_WORKDIR} - -COPY ./mariadb/setup_dbs.sh . -COPY ./mariadb/.skeema . -COPY ./login_server/skeema/ . -COPY ./mariadb/.skeema.login ./gradido_login/.skeema -COPY ./community_server/skeema/ . -COPY ./mariadb/.skeema.community ./gradido_community/.skeema - -USER mysql -#VOLUME /var/lib/mysql -RUN mysqld -RUN chmod +x ./setup_dbs.sh -RUN mysql < setup_dbs.sql -RUN skeema push - -EXPOSE 3306 - -CMD ["mysld"] \ No newline at end of file +######################################################################################################### +# Build skeema +######################################################################################################### +FROM golang:1.14.4 as skeema_build +RUN go get -d -v github.com/skeema/skeema +WORKDIR /go/src/github.com/skeema/skeema +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /go/bin/skeema . + +######################################################################################################### +# mariadb server +######################################################################################################### +From mariadb/server:10.5 as mariadb_server + +ENV DOCKER_WORKDIR="/docker-entrypoint-initdb.d" +#ENV DOCKER_WORKDIR="/skeema" + +# copy skeema +#COPY --from=skeema_build /go/bin/skeema /usr/bin/ + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} +#COPY ./mariadb/.skeema . +#COPY ./login_server/skeema/ . +#COPY ./mariadb/.skeema.login ./gradido_login/.skeema +#COPY ./community_server/skeema/ . +#RUN for f in *.c; do cp -- "$f" "$OTHERDIR/old#$f"; done + +# create databases +COPY ./mariadb/setup_dbs.sql a_setup_dbs.sql +# login server db +COPY ./login_server/skeema/ . +RUN cd ./gradido_login/ && for f in *.sql; do cp -- "$f" "../b_$f"; done +# community server db +COPY ./community_server/skeema/ . +RUN cd ./gradido_community/ && for f in *.sql; do cp -- "$f" "../c_$f"; done +RUN cd ./gradido_community/insert && for f in *.sql; do cp -- "$f" "../../d_$f"; done +RUN ls -ls + + +#USER mysql +#VOLUME /var/lib/mysql +#RUN mysqld +#RUN mysql -e 'CREATE DATABASE gradido_login_server;' +#RUN mysql -e 'CREATE DATABASE gradido_community_server;' + + +#RUN skeema push + +######################################################################################################### +# mariadb server selfmade +######################################################################################################### +From alpine:latest as mariadb_DIV + +ENV DOCKER_WORKDIR="/skeema" + +#VOLUME /var/lib/mysql + +#RUN apt-get update \ +# && apt-get -y --no-install-recommends install mariadb-server mariadb-client \ +# && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +RUN apk add mariadb mariadb-client + +# copy skeema +COPY --from=skeema_build /go/bin/skeema /usr/bin/ + +RUN mkdir -p ${DOCKER_WORKDIR} +WORKDIR ${DOCKER_WORKDIR} + +COPY ./mariadb/setup_dbs.sh . +COPY ./mariadb/.skeema . +COPY ./login_server/skeema/ . +COPY ./mariadb/.skeema.login ./gradido_login/.skeema +COPY ./community_server/skeema/ . +COPY ./mariadb/.skeema.community ./gradido_community/.skeema + +USER mysql +#VOLUME /var/lib/mysql +#RUN mysqld +#RUN chmod +x ./setup_dbs.sh +#RUN mysql < setup_dbs.sql +#RUN skeema push + +#EXPOSE 3306 + +#CMD ["mysld"] \ No newline at end of file