diff --git a/config/index.js b/config/index.js index 56d87fa0..8e8791c8 100644 --- a/config/index.js +++ b/config/index.js @@ -31,7 +31,7 @@ module.exports = { env: require('./dev.env'), cssSourceMap: true, // auto open browser or not - openBrowser: true, + openBrowser: false, publicPath: '/', port: 8080, diff --git a/debian/rules b/debian/rules index d71d8c09..d1914532 100755 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,7 @@ dh "$@" override_dh_auto_install: - npm install + npm ci cp src/config.template.js src/config.js npm run build mv dist csc diff --git a/env/Dockerfile b/env/Dockerfile new file mode 100644 index 00000000..9dc1a4ab --- /dev/null +++ b/env/Dockerfile @@ -0,0 +1,50 @@ +# DOCKER_NAME=ngcp-csc-ui-env-buster +FROM docker.mgm.sipwise.com/sipwise-buster:latest + +# Important! Update this no-op ENV variable when this Dockerfile +# is updated with the current date. It will force refresh of all +# of the base images and things like `apt-get update` won't be using +# old cached versions when the Dockerfile is built. +ENV REFRESHED_AT 2020-06-17 + +# files that get-code generates +COPY env/sources.list.d/builddeps.list /etc/apt/sources.list.d/ +COPY env/sources.list.d/preferences /etc/apt/preferences.d/ + +RUN apt-get update && \ + apt-get install --assume-yes \ + npm \ + nodejs \ + && \ + apt-get clean + +RUN echo "cd /code && t/run_csc_ui " > /root/.bash_history + +WORKDIR /code + +################################################################################ +# Instructions for usage +# ---------------------- +# +# Use the existing docker image: +# % docker pull docker.mgm.sipwise.com/ngcp-csc-ui-env-buster +# NOTE: run the following command from root folder of git repository: +# % docker run --rm -p 8080:8080 -i -t -v $(pwd):/code:rw docker.mgm.sipwise.com/ngcp-csc-ui-env-buster:latest env/run_csc_ui +# +# You can also run shell inside the Docker container if strictly necessary +# % docker run --rm -p 8080:8080 -i -t -v $(pwd):/code:rw docker.mgm.sipwise.com/ngcp-csc-ui-env-buster:latest bash +# Inside docker: press UP and follow the command on the screen +# +# ============================================================================== +# +# When you want to build the base image from scratch +# you need to put the proper NGCP sources at env/sources.list.d/builddeps.list +# for instance, trunk: +# echo "deb https://deb.sipwise.com/autobuild/ release-trunk-buster main" > env/sources.list.d/builddeps.list +# +# NOTE: run the following command from root folder of git repository: +# % docker build --no-cache --tag="ngcp-csc-ui-env-buster" -f env/Dockerfile . +# % docker run --rm -p 8080:8080 -i -t -v $(pwd):/code:rw ngcp-csc-ui-env-buster:latest bash +# Inside docker: press UP and follow the command on the screen +# +################################################################################ diff --git a/env/run_csc_ui b/env/run_csc_ui new file mode 100755 index 00000000..5c00f90c --- /dev/null +++ b/env/run_csc_ui @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +echo "Jumping into /code source storage" +cd /code + +echo "Checking NGCP environment configuration" +ngcp_address="$1" +if [ -z "${ngcp_address}" ] ; then + echo "ERROR: Missing NGCP address, please check the script parameters. Aborting." + exit 1 +fi +echo "Found NGCP address '${ngcp_address}', processing further..." + +app_config="src/config.js" +default_app_config="src/config.template.js" +if [ ! -f "${app_config}" ]; then + if [ ! -f "${default_app_config}" ]; then + echo "ERROR: missing default quasar config '${default_app_config}'. Aborting." + exit 1 + fi + + echo "Missing '${app_config}', copying default quasar config '${default_app_config}'" + cp "${default_app_config}" "${app_config}" +fi + +echo "Found quasar config '${app_config}', checking content..." +if ! grep -q "${ngcp_address}" "${app_config}" >/dev/null 2>&1; then + echo "NGCP address '${ngcp_address}' is missing in '${app_config}', regenerating from default config..." + cp -a "${default_app_config}" "${app_config}" + sed -i -e "s|baseHttpUrl:.*|baseHttpUrl: 'https://${ngcp_address}:1443',|" "${app_config}" + sed -i -e "s|baseWsUrl:.*|baseWsUrl: 'wss://${ngcp_address}:1443'|" "${app_config}" +fi +echo "App config '${app_config}' is OK." + +echo "JFYI, important components versions:" +echo -n "node --version : " && node --version +echo -n "npm --version : " && npm --version + +echo "Configuring Vue.js/Quasar dev environment, running 'npm ci'..." +if ! npm ci ; then + echo "ERROR: cannot install all npm dependencies. Aborting." + exit 1 +fi + +echo "Starting Quasar dev environment, running 'npm run dev'..." +if ! npm run dev; then + echo "ERROR: cannot run quasar dev environment. Aborting." + exit 1 +fi + diff --git a/env/sources.list.d/builddeps.list b/env/sources.list.d/builddeps.list new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/env/sources.list.d/builddeps.list @@ -0,0 +1 @@ + diff --git a/env/sources.list.d/preferences b/env/sources.list.d/preferences new file mode 100644 index 00000000..e69de29b diff --git a/package.json b/package.json index 37c29902..91cdf5d6 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "build": "node build/script.build.js mat", "dev-build": "CSC_SOURCE_MAP=1 CSC_WATCH=1 node build/script.build.js mat", "test": "karma start ./karma.js --single-run", - "dev-test": "karma start ./karma.js" + "dev-test": "karma start ./karma.js", + "dev-docker": "docker pull docker.mgm.sipwise.com/ngcp-csc-ui-env-buster; docker run --rm -p 8080:8080 -i -t -v $(pwd):/code:rw docker.mgm.sipwise.com/ngcp-csc-ui-env-buster:latest env/run_csc_ui $1" }, "dependencies": { "babel-runtime": "^6.25.0",