Browse --- Chat --- Wekan

Commit 5c5b2de4 authored by kc's avatar kc
Browse files

Update top level files

parent 5ab39475
Showing with 112 additions and 39 deletions
+112 -39
FROM jestrr/mods:no-java
FROM alpine:3.7 AS base
WORKDIR /home/app
RUN apk add --no-cache \
nodejs=8.9.3-r1 \
vim \
bash \
curl \
&& \
rm -rf /var/cache/apk/*
ENV PUB_FILES ./pub/
ENV BIN ./server/bin/
ENV STATIC_FILES ./server/static/
ENV OUTPUT_FILES ./server/output/
ENV REGISTER_SERVICE "true"
ENV USE_AUTH "true"
ENV USE_CONSUL_DB "true"
ADD package.json /home/app/package.json
RUN npm install
ADD pub /home/app/pub
FROM base AS src
RUN npm install -g pm2@2.10.1 -only=prod --no-optional --no-package-lock
ADD package.json /home/app/package.json
RUN npm install -only=prod --no-optional --no-package-lock
RUN cp -R node_modules prod_mods
RUN npm install --no-optional --no-package-lock
ADD pub /home/app/pub
ADD src /home/app/src
RUN npm run release
ADD server /home/app/server
ADD docker-compose.yml /home/app/docker-compose.yml
HEALTHCHECK --interval=5s --timeout=2s --start-period=5s \
CMD exit $(curl -sS http://localhost/healthcheck; echo $?)
LABEL com.consul.service="base_react_app"
ENTRYPOINT ["pm2-runtime", "server/pm2.config.js"]
CMD [""]
FROM base AS prod
ADD pub /home/app/pub
COPY --from=src /home/app/prod_mods ./node_modules
COPY --from=src /home/app/pub/app.bundle.js ./pub/app.bundle.js
COPY --from=src /home/app/pub/index.html ./pub/index.html
COPY --from=src /home/app/server /home/app/server
COPY --from=src /home/app/docker-compose.yml /home/app/docker-compose.yml
COPY --from=src /usr/lib/node_modules/pm2 /usr/lib/node_modules/pm2
RUN ln -s /usr/lib/node_modules/pm2/bin/pm2* /usr/bin
HEALTHCHECK --interval=10s --timeout=2s --start-period=30s \
CMD exit $(curl -sS http://localhost/healthcheck; echo $?)
LABEL com.consul.service="base_react_app"
ENTRYPOINT ["pm2-runtime", "server/pm2.config.js"]
CMD [""]
version: "3.5"
services:
main:
build:
context: .
target: src
image: jestrr/react:0.1.0
entrypoint: ["pm2-dev", "server/pm2.config.js"]
volumes:
- ./src:/home/app/src
- ./server:/home/app/server
- ./docker-compose.override.yml:/home/app/docker-compose.yml
ports:
- "5005:80"
labels:
com.consul.service: base_react_app
deploy:
replicas: 1
update_config:
parallelism: 1
delay: 10s
failure_action: rollback
max_failure_ratio: 1
order: start-first
restart_policy:
max_attempts: 3
condition: on-failure
placement:
preferences:
- spread: node.labels.dc
- spread: node.labels.az
healthcheck:
test: exit $$(curl -sS http://localhost/healthcheck; echo $$?)
interval: 5s
timeout: 2s
start_period: 5s
environment:
DEV_DATABASE_URL: "mongodb://172.17.0.1:27017/mymongo"
USE_CONSUL_DB: "false"
REGISTER_SERVICE: "false"
USE_AUTH: "false"
AUTH_URL: ""
LOG_EVERY_NUM_CHECKS: 5
DEV_ENV: "true"
version: "3"
version: "3.5"
services:
main:
build: .
image: YOUR_DOCKER_REGISTRY/react:0.1.0
entrypoint: ["pm2", "start", "/home/app/src/config/pm2.config.js", "--no-daemon"]
volumes:
# - /etc/ssl/creds:/home/app/creds
# - /etc/domain:/home/app/domain
- ./src:/home/app/src
- ./server:/home/app/server
# - ./pub:/home/app/pub
extra_hosts:
localmachine: "172.17.0.1"
build:
context: .
target: prod
image: jestrr/react:0.1.0
ports:
- "5000:80"
deploy:
replicas: 1
update_config:
parallelism: 1
delay: 10s
failure_action: rollback
max_failure_ratio: 1
order: start-first
restart_policy:
max_attempts: 3
condition: on-failure
ports:
# HOST:CONTAINER
# - "172.17.0.1:5000:4000" # Swarm dev
- "5000:4000" # Prod
labels:
com.consul.service: react
environment:
# Consul
REGISTER_SERVICE: "false"
# Server
PUB_FILES: ./pub/
BIN: ./server/bin/
OUTPUT_FILES: ./server/output/
USE_AUTH: "false"
# Database
USE_DEV_DB_URL: "true"
DEV_DATABASE_URL: mongodb://172.17.0.1:27017/mymongo
placement:
preferences:
- spread: node.labels.dc
- spread: node.labels.az
{
"name": "Base-React-App",
"version": "0.0.1",
"dependencies": {},
"dependencies": {
"consul": "^0.30.0",
"os-npm-util": "https://github.com/Cjones90/os.npm.util/tarball/master#0.7.0"
},
"devDependencies": {
"babel-core": "^6.22.1",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.22.0",
"babel-preset-stage-0": "^6.22.0",
"consul": "^0.29.0",
"less": "^2.7.1",
"less-loader": "^2.2.3",
"css-loader": "^0.26.1",
"json-loader": "^0.5.4",
"js-yaml": "^3.10.0",
"react": "^15.3.0",
"react-dom": "^15.3.0",
"react-router-dom": "^4.2.0",
"style-loader": "^0.13.1",
"webpack": "^1.14.0"
"webpack": "^1.14.0",
"html-webpack-plugin": "^2.30.1"
},
"scripts": {
"watch": "webpack --config='src/config/webpack.config.js' --progress --colors --watch",
"release": "webpack --config='src/config/webpack.config.js' --progress --colors --optimize-minimize"
}
},
"description": "Base React App",
"repository": "",
"license": "MIT"
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment