From c279098cc0eb295235242c5304ceeadd69b2cd77 Mon Sep 17 00:00:00 2001 From: KRTirtho Date: Wed, 19 May 2021 22:53:58 +0600 Subject: [PATCH] dockerized the application --- .dockerignore | 6 ++++ Dockerfile | 45 ++++++++++++++++++++++++++++ docker-compose.dev.yml | 8 +++++ docker-compose.yml | 11 +++++++ package-lock.json | 68 ++++++++++++++++++++++++++---------------- 5 files changed, 113 insertions(+), 25 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.dev.yml create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..12516960 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +node_modules +.git +.gitignore +.env +Dockerfile +docker-compose* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..f6c51558 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,45 @@ +FROM ubuntu:latest + +WORKDIR /app +SHELL ["/bin/bash", "-c"] + +RUN apt-get update &&\ + DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install\ + ca-certificates\ + pkg-config\ + build-essential\ + cmake\ + gcc-7\ + curl\ + mesa-common-dev\ + libglu1-mesa-dev\ + libqt5x11extras5\ + xcb\ + mpv\ + python + +RUN apt-get install -y --reinstall libxcb-xinerama0 +# removing broken youtube-dl & giving execution permissions +RUN apt-get remove -y youtube-dl +RUN curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl && chmod a+rx /usr/local/bin/youtube-dl + +RUN mkdir -p /usr/local/nvm +ENV NVM_DIR /usr/local/nvm +ENV NODE_VERSION 14.17.0 + +# Install nvm with node and npm +RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.38.0/install.sh | bash \ + && source $NVM_DIR/nvm.sh \ + && nvm install $NODE_VERSION \ + && nvm alias default $NODE_VERSION \ + && nvm use default + +ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules +ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH + +COPY ./package.json ./ +RUN npm install +COPY ./ ./ + +CMD ["sleep", "500000" ] + diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 00000000..fda5f125 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,8 @@ +version: "3" + +services: + spotube: + volumes: + - /home/$USER/.config:/root/.config + - ./:/app + - /app/node_modules diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..751fba7f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3" + +services: + spotube: + build: . + volumes: + - /tmp/.X11-unix:/tmp/.X11-unix + environment: + # run `$ xhost local:root` in the host machine to get it work + - DISPLAY=${DISPLAY} + network_mode: host \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7a716e7a..3ed52c80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "spotube", - "version": "0.0.2", + "version": "0.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2004,16 +2004,34 @@ } }, "@nodegui/react-nodegui": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@nodegui/react-nodegui/-/react-nodegui-0.10.0.tgz", - "integrity": "sha512-wQJjsM8hNXoQm+blEGPA6hfJfOzsk1W8ACgQlcEiNmo16eQLokwQT2EWcA4sZlEKRgIID76Fkxdq+zwNCNuAHg==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@nodegui/react-nodegui/-/react-nodegui-0.10.4.tgz", + "integrity": "sha512-FmzYj8ImsUoPTEb0bXR4MKiVAdKypI6V1slTiBLd+FPLM+/BKO6XKqaGZOX1OO8adPGWw5umbP3yxTDNGqYIAw==", "requires": { - "@nodegui/nodegui": "^0.27.0", + "@nodegui/nodegui": "^0.30.2", "@types/react-reconciler": "^0.18.0", "phin": "^3.4.1", "react-deep-force-update": "^2.1.3", "react-proxy": "^2.0.8", "react-reconciler": "^0.25.1" + }, + "dependencies": { + "@nodegui/nodegui": { + "version": "0.30.2", + "resolved": "https://registry.npmjs.org/@nodegui/nodegui/-/nodegui-0.30.2.tgz", + "integrity": "sha512-UhUCH6bqaaeMoRFfQBMc0mEozwtF4slV3agwUHkEw9zuLcM+1JZewKIiaKnSHMtYdrbgkIohTDsYxlwHgAXv+A==", + "requires": { + "@nodegui/artifact-installer": "^1.1.0", + "@nodegui/qode": "^2.1.0", + "cmake-js": "^6.1.0", + "cross-env": "^7.0.3", + "cuid": "^2.1.6", + "manage-path": "^2.0.0", + "memoize-one": "^5.1.1", + "node-addon-api": "^3.1.0", + "postcss-nodegui-autoprefixer": "0.0.7" + } + } } }, "@sindresorhus/is": { @@ -4858,9 +4876,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "html-to-text": { @@ -5424,9 +5442,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.debounce": { "version": "4.0.8", @@ -5529,9 +5547,9 @@ } }, "memoize-one": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", - "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" }, "memory-stream": { "version": "0.0.3", @@ -5692,9 +5710,9 @@ "dev": true }, "node-abi": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", - "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.26.0.tgz", + "integrity": "sha512-ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ==", "requires": { "semver": "^5.4.1" } @@ -6141,14 +6159,14 @@ } }, "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==", "dev": true, "requires": { - "base64-js": "^1.2.3", + "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" + "xmldom": "^0.5.0" } }, "pngjs": { @@ -7981,9 +7999,9 @@ "dev": true }, "xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", + "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==", "dev": true }, "xtend": {