dockerized the application

This commit is contained in:
KRTirtho 2021-05-19 22:53:58 +06:00
parent 24c7c27a09
commit c279098cc0
5 changed files with 113 additions and 25 deletions

6
.dockerignore Normal file
View File

@ -0,0 +1,6 @@
node_modules
.git
.gitignore
.env
Dockerfile
docker-compose*

45
Dockerfile Normal file
View File

@ -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" ]

8
docker-compose.dev.yml Normal file
View File

@ -0,0 +1,8 @@
version: "3"
services:
spotube:
volumes:
- /home/$USER/.config:/root/.config
- ./:/app
- /app/node_modules

11
docker-compose.yml Normal file
View File

@ -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

68
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "spotube", "name": "spotube",
"version": "0.0.2", "version": "0.0.3",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -2004,16 +2004,34 @@
} }
}, },
"@nodegui/react-nodegui": { "@nodegui/react-nodegui": {
"version": "0.10.0", "version": "0.10.4",
"resolved": "https://registry.npmjs.org/@nodegui/react-nodegui/-/react-nodegui-0.10.0.tgz", "resolved": "https://registry.npmjs.org/@nodegui/react-nodegui/-/react-nodegui-0.10.4.tgz",
"integrity": "sha512-wQJjsM8hNXoQm+blEGPA6hfJfOzsk1W8ACgQlcEiNmo16eQLokwQT2EWcA4sZlEKRgIID76Fkxdq+zwNCNuAHg==", "integrity": "sha512-FmzYj8ImsUoPTEb0bXR4MKiVAdKypI6V1slTiBLd+FPLM+/BKO6XKqaGZOX1OO8adPGWw5umbP3yxTDNGqYIAw==",
"requires": { "requires": {
"@nodegui/nodegui": "^0.27.0", "@nodegui/nodegui": "^0.30.2",
"@types/react-reconciler": "^0.18.0", "@types/react-reconciler": "^0.18.0",
"phin": "^3.4.1", "phin": "^3.4.1",
"react-deep-force-update": "^2.1.3", "react-deep-force-update": "^2.1.3",
"react-proxy": "^2.0.8", "react-proxy": "^2.0.8",
"react-reconciler": "^0.25.1" "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": { "@sindresorhus/is": {
@ -4858,9 +4876,9 @@
} }
}, },
"hosted-git-info": { "hosted-git-info": {
"version": "2.8.8", "version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true "dev": true
}, },
"html-to-text": { "html-to-text": {
@ -5424,9 +5442,9 @@
} }
}, },
"lodash": { "lodash": {
"version": "4.17.20", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
}, },
"lodash.debounce": { "lodash.debounce": {
"version": "4.0.8", "version": "4.0.8",
@ -5529,9 +5547,9 @@
} }
}, },
"memoize-one": { "memoize-one": {
"version": "5.1.1", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
"integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
}, },
"memory-stream": { "memory-stream": {
"version": "0.0.3", "version": "0.0.3",
@ -5692,9 +5710,9 @@
"dev": true "dev": true
}, },
"node-abi": { "node-abi": {
"version": "2.19.3", "version": "2.26.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.26.0.tgz",
"integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", "integrity": "sha512-ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ==",
"requires": { "requires": {
"semver": "^5.4.1" "semver": "^5.4.1"
} }
@ -6141,14 +6159,14 @@
} }
}, },
"plist": { "plist": {
"version": "3.0.1", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz",
"integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"base64-js": "^1.2.3", "base64-js": "^1.5.1",
"xmlbuilder": "^9.0.7", "xmlbuilder": "^9.0.7",
"xmldom": "0.1.x" "xmldom": "^0.5.0"
} }
}, },
"pngjs": { "pngjs": {
@ -7981,9 +7999,9 @@
"dev": true "dev": true
}, },
"xmldom": { "xmldom": {
"version": "0.1.31", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz",
"integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==",
"dev": true "dev": true
}, },
"xtend": { "xtend": {