Skip to content
Snippets Groups Projects
Commit 60a1464d authored by Léo Banno-Cloutier's avatar Léo Banno-Cloutier
Browse files

Dockerfile: no more reliance on the local environment

Change-Id: I2b16ba10b7541fc6003f210c893654f41b7a7bc9
parent 1be05765
No related branches found
No related tags found
No related merge requests found
.git
.gitignore
.dockerignore
**/node_modules
jams
FROM adoptopenjdk/openjdk11:jdk-11.0.2.9-alpine FROM maven:3.9.2-eclipse-temurin-11-alpine as build
RUN apk update && apk add --no-cache python3 npm
WORKDIR /app/jams-react-client
COPY jams-react-client/package*.json ./
RUN npm install
WORKDIR /opt/jams WORKDIR /app
COPY jams/*.jar ./ COPY pom.xml .
COPY jams/libs libs/ COPY ad-connector/pom.xml ad-connector/pom.xml
ADD jams/libs libs/ COPY authentication-module/pom.xml authentication-module/pom.xml
COPY datastore/pom.xml datastore/pom.xml
COPY jami-dht/pom.xml jami-dht/pom.xml
COPY jami-nameserver/pom.xml jami-nameserver/pom.xml
COPY jams-ca/pom.xml jams-ca/pom.xml
COPY jams-common/pom.xml jams-common/pom.xml
COPY jams-launcher/pom.xml jams-launcher/pom.xml
COPY ldap-connector/pom.xml ldap-connector/pom.xml
COPY jams-server/pom.xml jams-server/pom.xml
# RUN mvn verify --fail-never
# RUN mvn dependency:resolve --fail-never
RUN mvn dependency:go-offline --fail-never
COPY . .
# RUN mvn clean package
RUN mvn package
FROM adoptopenjdk/openjdk11:jdk-11.0.2.9-alpine
WORKDIR /app
COPY --from=build /app/jams .
EXPOSE 8080 EXPOSE 8080
ENTRYPOINT ["java","-jar","jams-launcher.jar"] ENTRYPOINT ["java","-jar","jams-launcher.jar"]
...@@ -10,18 +10,25 @@ ...@@ -10,18 +10,25 @@
Clone the contents of this repository and run Clone the contents of this repository and run
``` ```
cd jams-react-client
npm install
npm start
cd ..
mvn clean package mvn clean package
``` ```
This will create a distribution folder called `jams` in the root folder. You can This will create a distribution folder called `jams` in the root folder. You can
then launch the server by running then launch the server by running
`java -jar jams-launcher` ```
cd jams
java -jar jams-launcher.jar
```
If you want to start the server with an SSL certificate and on a port different If you want to start the server with an SSL certificate and on a port different
from 8080, then run: from 8080, then run:
`java -jar jams-launcher 8443 server.pem server.key` `java -jar jams-launcher.jar 8443 server.pem server.key`
Where the `pem` and `key` files are a pem encoded certificate and key. Where the `pem` and `key` files are a pem encoded certificate and key.
...@@ -40,6 +47,8 @@ To build the documentation, change enter the `jams-server` directory and simply ...@@ -40,6 +47,8 @@ To build the documentation, change enter the `jams-server` directory and simply
`apidoc -i src/ -o doc/` `apidoc -i src/ -o doc/`
You can then open `doc/index.html`. Click on 1.0.0 in the top right corner if the doc doesn't appear.
##### Building the Docker container ##### Building the Docker container
You can build the docker container using: You can build the docker container using:
...@@ -48,8 +57,8 @@ You can build the docker container using: ...@@ -48,8 +57,8 @@ You can build the docker container using:
docker build -f Dockerfile -t jams:latest . docker build -f Dockerfile -t jams:latest .
``` ```
To run the docker container (assuming you want to have it on port 80 locally): To run the docker container (assuming you want to have it on port 8080 locally):
``` ```
docker run -p 80:8080 --rm jams:latest docker run -p 8080:8080 --rm jams:latest
``` ```
...@@ -18,4 +18,7 @@ module.exports = { ...@@ -18,4 +18,7 @@ module.exports = {
"plugin:react/recommended", "plugin:react/recommended",
"plugin:prettier/recommended", "plugin:prettier/recommended",
], ],
rules: {
"react/prop-types": "off",
},
}; };
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"compilerOptions": { "compilerOptions": {
"baseUrl": "src", "baseUrl": "src",
"paths": { "paths": {
"*": ["src/*"] "*": ["./src/*"]
} }
} }
} }
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
"private": false, "private": false,
"main": "dist/index.js", "main": "dist/index.js",
"dependencies": { "dependencies": {
"@lingui/react": "^2.9.2",
"@material-ui/core": "4.12.1", "@material-ui/core": "4.12.1",
"@material-ui/icons": "4.9.1", "@material-ui/icons": "4.9.1",
"@material-ui/lab": "^4.0.0-alpha.56", "@material-ui/lab": "^4.0.0-alpha.56",
...@@ -22,16 +21,14 @@ ...@@ -22,16 +21,14 @@
"image-to-base64": "^2.1.1", "image-to-base64": "^2.1.1",
"lodash": "^4.17.19", "lodash": "^4.17.19",
"material-ui-popup-state": "^1.6.1", "material-ui-popup-state": "^1.6.1",
"notistack": "^0.9.17",
"package.json": "^2.0.1",
"perfect-scrollbar": "1.5.0", "perfect-scrollbar": "1.5.0",
"prop-types": "15.7.2", "prop-types": "15.7.2",
"react": "^16.13.1", "react": "^16.13.1",
"react-chartist": "0.14.3", "react-color": "^2.19.3",
"react-copy-to-clipboard": "^5.0.2", "react-copy-to-clipboard": "^5.0.2",
"react-dom": "16.13.1", "react-dom": "16.13.1",
"react-dropzone": "^14.2.3",
"react-easy-crop": "^3.1.1", "react-easy-crop": "^3.1.1",
"react-google-maps": "9.4.5",
"react-i18next": "^11.7.3", "react-i18next": "^11.7.3",
"react-image-file-resizer": "^0.3.8", "react-image-file-resizer": "^0.3.8",
"react-intl": "5.0.2", "react-intl": "5.0.2",
...@@ -43,12 +40,12 @@ ...@@ -43,12 +40,12 @@
"yup-phone": "^1.2.3" "yup-phone": "^1.2.3"
}, },
"scripts": { "scripts": {
"start": "NODE_PATH=./src react-scripts start", "start": "export SET NODE_OPTIONS=--openssl-legacy-provider && NODE_PATH=./src react-scripts start",
"build": "react-scripts build && ./node_modules/.bin/i18next-scanner", "build": "export SET NODE_OPTIONS=--openssl-legacy-provider && react-scripts build && ./node_modules/.bin/i18next-scanner",
"test": "react-scripts test --env=jsdom", "test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject", "eject": "react-scripts eject",
"install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start", "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start",
"format": "prettier --write \"src/**/*\"", "format": "prettier --write --loglevel warn 'src/**/*.js'",
"lint:check": "eslint . --ext=js,jsx; exit 0", "lint:check": "eslint . --ext=js,jsx; exit 0",
"lint:fix": "eslint . --ext=js,jsx --fix; exit 0", "lint:fix": "eslint . --ext=js,jsx --fix; exit 0",
"build-package-css": "cp src/assets/css/material-dashboard-react.css dist/material-dashboard-react.css", "build-package-css": "cp src/assets/css/material-dashboard-react.css dist/material-dashboard-react.css",
...@@ -64,17 +61,11 @@ ...@@ -64,17 +61,11 @@
"bugs": { "bugs": {
"url": "https://github.com/creativetimofficial/material-dashboard-react/issues" "url": "https://github.com/creativetimofficial/material-dashboard-react/issues"
}, },
"homepage": "https://creativetimofficial.github.io/material-dashboard-react/#/dashboard",
"optionalDependencies": { "optionalDependencies": {
"@types/googlemaps": "3.39.6",
"@types/markerclustererplus": "2.1.33",
"ajv": "6.12.2",
"typescript": "3.9.3" "typescript": "3.9.3"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.11.6", "@babel/core": "^7.11.6",
"@lingui/cli": "^2.9.2",
"@lingui/macro": "^2.9.2",
"babel-core": "^7.0.0-bridge.0", "babel-core": "^7.0.0-bridge.0",
"babel-plugin-i18next-extract": "^0.8.0", "babel-plugin-i18next-extract": "^0.8.0",
"eslint-config-prettier": "6.11.0", "eslint-config-prettier": "6.11.0",
...@@ -84,7 +75,7 @@ ...@@ -84,7 +75,7 @@
"i18next-parser": "^3.3.0", "i18next-parser": "^3.3.0",
"i18next-scanner": "^2.11.0", "i18next-scanner": "^2.11.0",
"prettier": "2.0.5", "prettier": "2.0.5",
"webpack-cli": "^3.3.12" "react-error-overlay": "^6.0.9"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment