diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 5a505478b..944f8d976 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -8,6 +8,8 @@ services: image: gradido/frontend:development build: target: development + networks: + - external-net environment: - NODE_ENV="development" # - DEBUG=true diff --git a/docker-compose.yml b/docker-compose.yml index 8b5bf33de..59e617d71 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,13 +15,13 @@ services: context: ./frontend target: production networks: - - external-net + - internal-net ports: - - 8080:8080 + - 3000:3000 environment: # Envs used in Dockerfile # - DOCKER_WORKDIR="/app" - # - PORT="8080" + # - PORT=3000 - BUILD_DATE - BUILD_VERSION - BUILD_COMMIT diff --git a/frontend/.env.dist b/frontend/.env.dist index 39edd4b4e..7815be556 100644 --- a/frontend/.env.dist +++ b/frontend/.env.dist @@ -1,3 +1,2 @@ LOGIN_API_URL=http://localhost/login_api/ -COMMUNITY_API_URL=http://localhost/api/ -VUE_PATH=/vue +COMMUNITY_API_URL=http://localhost/api/ \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile index f133926b2..5ec90fe81 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -15,7 +15,7 @@ ENV BUILD_COMMIT="0000000" ## SET NODE_ENV ENV NODE_ENV="production" ## App relevant Envs -ENV PORT="8080" +ENV PORT="3000" # Labels LABEL org.label-schema.build-date="${BUILD_DATE}" @@ -82,15 +82,14 @@ FROM base as production # Copy "binary"-files from build image COPY --from=build ${DOCKER_WORKDIR}/dist ./dist -#COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules -#COPY --from=build ${DOCKER_WORKDIR}/nuxt.config.js ./nuxt.config.js +# We also copy the node_modules express and serve-static for the run script +COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules # Copy static files -# TODO - this should be one Folder containign all stuff needed to be copied -#COPY --from=build ${DOCKER_WORKDIR}/constants ./constants -#COPY --from=build ${DOCKER_WORKDIR}/static ./static -#COPY --from=build ${DOCKER_WORKDIR}/locales ./locales +COPY --from=build ${DOCKER_WORKDIR}/public ./public # Copy package.json for script definitions (lock file should not be needed) COPY --from=build ${DOCKER_WORKDIR}/package.json ./package.json +# Copy run scripts run/ +COPY --from=build ${DOCKER_WORKDIR}/run ./run # Run command CMD /bin/sh -c "yarn run start" diff --git a/frontend/package.json b/frontend/package.json index 00e0ca45b..222061847 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,7 +3,7 @@ "version": "0.9.4", "private": true, "scripts": { - "start": "node server.js", + "start": "node run/server.js", "serve": "vue-cli-service serve --open", "build": "vue-cli-service build", "lint": "eslint --ext .js,.vue .", diff --git a/frontend/run/server.js b/frontend/run/server.js new file mode 100644 index 000000000..470acdc4e --- /dev/null +++ b/frontend/run/server.js @@ -0,0 +1,14 @@ +// Imports +const express = require('express') +const serveStatic = require('serve-static') + +// Port +const port = process.env.PORT || 3000 + +// Express Server +const app = express() +app.use(serveStatic(__dirname + '/../dist')) +app.listen(port) + +// eslint-disable-next-line no-console +console.log(`http://frontend:${port} server started.`) diff --git a/frontend/server.js b/frontend/server.js deleted file mode 100644 index 5bcebd90a..000000000 --- a/frontend/server.js +++ /dev/null @@ -1,7 +0,0 @@ -var express = require('express') -var serveStatic = require('serve-static') -var app = express() -app.use(serveStatic(__dirname + '/dist')) -var port = process.env.PORT || 5000 -app.listen(port) -// console.log('http://localhost:5000 server started.'); diff --git a/frontend/src/routes/router.js b/frontend/src/routes/router.js index 6671a8de9..6d2963db5 100644 --- a/frontend/src/routes/router.js +++ b/frontend/src/routes/router.js @@ -6,6 +6,7 @@ Vue.use(VueRouter) // configure router const router = new VueRouter({ + base: '/vue', routes, // short for routes: routes linkActiveClass: 'active', mode: 'history', diff --git a/frontend/src/views/KontoOverview/GddSend.vue b/frontend/src/views/KontoOverview/GddSend.vue index 7230e6326..74acb3f46 100644 --- a/frontend/src/views/KontoOverview/GddSend.vue +++ b/frontend/src/views/KontoOverview/GddSend.vue @@ -10,7 +10,7 @@ - + diff --git a/frontend/vue.config.js b/frontend/vue.config.js index ad2c10585..0ff92c052 100644 --- a/frontend/vue.config.js +++ b/frontend/vue.config.js @@ -1,17 +1,11 @@ const path = require('path') const dotenv = require('dotenv-webpack') -function resolveSrc(_path) { - return path.join(__dirname, _path) -} - -let vue_path = process.env.VUE_PATH -if (vue_path == undefined) { - vue_path = '/vue' -} - // vue.config.js module.exports = { + devServer: { + port: process.env.PORT || 3000, + }, pluginOptions: { i18n: { locale: 'de', @@ -21,12 +15,12 @@ module.exports = { }, }, lintOnSave: true, - publicPath: vue_path + '/', + publicPath: '/vue', configureWebpack: { // Set up all the aliases we use in our app. resolve: { alias: { - assets: resolveSrc('src/assets'), + assets: path.join(__dirname, 'src/assets'), }, }, plugins: [new dotenv()], @@ -35,5 +29,5 @@ module.exports = { // Enable CSS source maps. sourceMap: process.env.NODE_ENV !== 'production', }, - outputDir: path.resolve(__dirname, './dist' + vue_path), + outputDir: path.resolve(__dirname, './dist'), } diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 4f3aff146..240144cc3 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -1,5 +1,3 @@ - - server { listen 80 ; @@ -8,12 +6,10 @@ server { #include /etc/nginx/common/protect.conf; #include /etc/nginx/common/protect_add_header.conf; - #include /etc/nginx/common/ssl.conf; - + #include /etc/nginx/common/ssl.conf; root /var/www/cakephp/webroot; - index index.php; - + index index.php; location ~ \.php$ { fastcgi_pass community-server:9000; @@ -23,7 +19,6 @@ server { fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; include fastcgi_params; - } location ~ /\.ht { @@ -31,65 +26,61 @@ server { } location /account { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - rewrite /account/(.*) /$1 break; - - #proxy_next_upstream error timeout invalid_header http_502 non_idempotent; - proxy_pass http://login-server:1200; - proxy_redirect off; - + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Host $host; + rewrite /account/(.*) /$1 break; + proxy_pass http://login-server:1200; + proxy_redirect off; } location /login_api { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - rewrite /login_api/(.*) /$1 break; - - proxy_pass http://login-server:1201; - proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Host $host; + rewrite /login_api/(.*) /$1 break; + + proxy_pass http://login-server:1201; + proxy_redirect off; } location / { - try_files $uri $uri/ /index.php?$args; + try_files $uri $uri/ /index.php?$args; } location /vue { - - location /vue/sockjs-node { - rewrite /vue/(.*) /$1; - } - location ~* \.(png) { - expires 1d; - rewrite /vue/(.*) /$1; - } - - #try_files /vue/$uri /vue/$uri/ /index.html; - proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; - #rewrite /vue/(.*) /$1 break; + + proxy_pass http://frontend:3000; + proxy_redirect off; + } - proxy_pass http://frontend:8080; + location /sockjs-node { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + + proxy_pass http://frontend:3000; proxy_redirect off; } # access_log /var/log/nginx/access.log main; - } \ No newline at end of file