-
Notifications
You must be signed in to change notification settings - Fork 452
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1323 from ever-co/feature/packages-updates
Feature/packages updates
- Loading branch information
Showing
466 changed files
with
24,956 additions
and
19,955 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,121 @@ | ||
FROM node:alpine AS development | ||
# Ever Demand Platform Admin UI (Angular) | ||
|
||
RUN apk update \ | ||
ARG API_BASE_URL | ||
ARG API_HOST | ||
ARG API_PORT | ||
ARG CLIENT_BASE_URL | ||
ARG SENTRY_DSN | ||
ARG CHATWOOT_SDK_TOKEN | ||
ARG CLOUDINARY_CLOUD_NAME | ||
ARG CLOUDINARY_API_KEY | ||
ARG GOOGLE_MAPS_API_KEY | ||
ARG GOOGLE_PLACE_AUTOCOMPLETE | ||
ARG DEFAULT_LATITUDE | ||
ARG DEFAULT_LONGITUDE | ||
ARG DEFAULT_CURRENCY | ||
ARG DEMO | ||
ARG WEB_HOST | ||
ARG WEB_PORT | ||
|
||
FROM node:16-alpine3.11 AS dependencies | ||
|
||
LABEL maintainer="[email protected]" | ||
|
||
ENV CI=true | ||
|
||
RUN apk --update add bash \ | ||
&& apk add libexecinfo libexecinfo-dev \ | ||
&& npm i -g npm \ | ||
&& apk --no-cache add --virtual builds-deps build-base \ | ||
snappy g++ snappy-dev gcc libgcc libstdc++ linux-headers autoconf automake make nasm python git \ | ||
&& apk add --no-cache --virtual build-dependencies build-base \ | ||
snappy dos2unix g++ snappy-dev gcc libgcc libstdc++ linux-headers autoconf automake make nasm python2 py2-setuptools vips-dev git \ | ||
&& npm install --quiet node-gyp -g \ | ||
&& npm config set python /usr/bin/python \ | ||
&& npm install yarn -g --force | ||
&& npm install yarn -g --force \ | ||
&& mkdir /srv/ever && chown -R node:node /srv/ever | ||
|
||
RUN mkdir /srv/ever && chown node:node /srv/ever | ||
COPY wait .deploy/admin-web-angular/entrypoint.compose.sh .deploy/admin-web-angular/entrypoint.prod.sh / | ||
|
||
USER node | ||
RUN chmod +x /wait /entrypoint.compose.sh /entrypoint.prod.sh && dos2unix /entrypoint.compose.sh && dos2unix /entrypoint.prod.sh | ||
|
||
USER node:node | ||
|
||
WORKDIR /srv/ever | ||
|
||
COPY --chown=node:node package.json yarn.lock lerna.json package.workspaces.json ./ | ||
COPY --chown=node:node package.json yarn.lock lerna.json package.workspaces.json tsconfig.base.json ./ | ||
COPY --chown=node:node packages/admin-web-angular/package.json ./packages/admin-web-angular/package.json | ||
COPY --chown=node:node .snyk ./.snyk | ||
COPY --chown=node:node packages/common ./packages/common | ||
COPY --chown=node:node packages/common-angular ./packages/common-angular | ||
COPY --chown=node:node packages/common/package.json ./packages/common/package.json | ||
COPY --chown=node:node packages/common-angular/package.json ./packages/common-angular/package.json | ||
|
||
RUN yarn bootstrap && yarn cache clean | ||
|
||
RUN yarn install | ||
FROM node:16-alpine3.11 AS development | ||
|
||
FROM node:alpine AS production | ||
USER node:node | ||
|
||
RUN npm install cross-env -g | ||
WORKDIR /srv/ever | ||
|
||
RUN mkdir /srv/ever && chown node:node /srv/ever | ||
RUN mkdir -p /srv/ever/packages/admin-web-angular && chown node:node /srv/ever/packages/admin-web-angular | ||
RUN mkdir -p /srv/ever/packages/common && chown node:node /srv/ever/packages/common | ||
RUN mkdir -p /srv/ever/packages/common-angular && chown node:node /srv/ever/packages/common-angular | ||
COPY --chown=node:node --from=dependencies /wait /entrypoint.compose.sh /entrypoint.prod.sh / | ||
COPY --chown=node:node --from=dependencies /srv/ever . | ||
COPY . . | ||
|
||
USER node | ||
FROM node:16-alpine3.11 AS build | ||
|
||
WORKDIR /srv/ever | ||
|
||
ARG NODE_OPTIONS="--max-old-space-size=2048" | ||
ENV NODE_OPTIONS $NODE_OPTIONS | ||
ENV NODE_ENV production | ||
RUN mkdir dist | ||
|
||
COPY --from=development --chown=node:node /srv/ever/node_modules ./node_modules | ||
COPY --from=development --chown=node:node /srv/ever/packages/common/node_modules ./packages/common/node_modules | ||
COPY --from=development --chown=node:node /srv/ever/packages/common-angular/node_modules ./packages/common-angular/node_modules | ||
COPY --from=development --chown=node:node /srv/ever/packages/admin-web-angular/node_modules ./packages/admin-web-angular/node_modules | ||
COPY --chown=node:node package.json yarn.lock lerna.json package.workspaces.json tsconfig.base.json ./ | ||
COPY --chown=node:node packages/common ./packages/common | ||
COPY --chown=node:node packages/common-angular ./packages/common-angular | ||
COPY --chown=node:node packages/admin-web-angular ./packages/admin-web-angular | ||
COPY --chown=node:node --from=development /srv/ever . | ||
|
||
ENV NODE_OPTIONS=${NODE_OPTIONS:-"--max-old-space-size=2048"} | ||
ENV NODE_ENV=${NODE_ENV:-production} | ||
|
||
ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} | ||
ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} | ||
ENV SENTRY_DSN=${SENTRY_DSN} | ||
|
||
ENV CHATWOOT_SDK_TOKEN=${CHATWOOT_SDK_TOKEN} | ||
ENV CLOUDINARY_CLOUD_NAME=${CLOUDINARY_CLOUD_NAME} | ||
ENV CLOUDINARY_API_KEY=${CLOUDINARY_API_KEY} | ||
ENV GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY} | ||
ENV GOOGLE_PLACE_AUTOCOMPLETE=${GOOGLE_PLACE_AUTOCOMPLETE:-false} | ||
ENV DEFAULT_LATITUDE=${DEFAULT_LATITUDE:-42.6459136} | ||
ENV DEFAULT_LONGITUDE=${DEFAULT_LONGITUDE:-23.3332736} | ||
ENV DEFAULT_CURRENCY=${DEFAULT_CURRENCY:-USD}_DSN} | ||
|
||
ENV DEMO=${DEMO:-false} | ||
|
||
ENV IS_DOCKER=true | ||
|
||
RUN yarn build:admin | ||
|
||
FROM nginx:alpine AS production | ||
|
||
# USER nginx:nginx | ||
|
||
WORKDIR /srv/ever | ||
|
||
COPY --chown=nginx:nginx --from=dependencies /wait /entrypoint.prod.sh /entrypoint.compose.sh ./ | ||
COPY --chown=nginx:nginx .deploy/admin-web-angular/nginx.compose.conf /etc/nginx/conf.d/compose.conf.template | ||
COPY --chown=nginx:nginx .deploy/admin-web-angular/nginx.prod.conf /etc/nginx/conf.d/prod.conf.template | ||
COPY --chown=nginx:nginx --from=build /srv/ever/packages/admin-web-angular/build . | ||
|
||
RUN chmod +x wait entrypoint.compose.sh entrypoint.prod.sh && \ | ||
chmod a+rw /etc/nginx/conf.d/compose.conf.template /etc/nginx/conf.d/prod.conf.template | ||
|
||
ENV API_BASE_URL=${API_BASE_URL:-http://localhost:3000} | ||
ENV CLIENT_BASE_URL=${CLIENT_BASE_URL:-http://localhost:4200} | ||
ENV SENTRY_DSN=${SENTRY_DSN} | ||
|
||
ENV API_HOST=${API_HOST:-api} | ||
ENV API_PORT=${API_PORT:-3000} | ||
ENV WEB_HOST=${WEB_HOST:-0.0.0.0} | ||
ENV WEB_PORT=${WEB_PORT:-4200} | ||
|
||
ENV DEMO=${DEMO:-false} | ||
|
||
EXPOSE ${WEB_PORT} | ||
|
||
ENTRYPOINT [ "./entrypoint.prod.sh" ] | ||
|
||
CMD [ "nginx", "-g", "daemon off;" ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#!/bin/sh | ||
set -ex | ||
|
||
# This Entrypoint used inside Docker Compose only | ||
|
||
export WAIT_HOSTS=$API_HOST:$API_PORT | ||
|
||
# In production we should replace some values in generated JS code | ||
sed -i "s#DOCKER_API_BASE_URL#$API_BASE_URL#g" *.js | ||
sed -i "s#DOCKER_CLIENT_BASE_URL#$CLIENT_BASE_URL#g" *.js | ||
sed -i "s#DOCKER_SENTRY_DSN#$SENTRY_DSN#g" *.js | ||
sed -i "s#DOCKER_CLOUDINARY_CLOUD_NAME#$CLOUDINARY_CLOUD_NAME#g" *.js | ||
sed -i "s#DOCKER_CLOUDINARY_API_KEY#$CLOUDINARY_API_KEY#g" *.js | ||
sed -i "s#DOCKER_GOOGLE_MAPS_API_KEY#$GOOGLE_MAPS_API_KEY#g" *.js | ||
sed -i "s#DOCKER_GOOGLE_PLACE_AUTOCOMPLETE#$GOOGLE_PLACE_AUTOCOMPLETE#g" *.js | ||
sed -i "s#DOCKER_DEFAULT_LATITUDE#$DEFAULT_LATITUDE#g" *.js | ||
sed -i "s#DOCKER_DEFAULT_LONGITUDE#$DEFAULT_LONGITUDE#g" *.js | ||
sed -i "s#DOCKER_DEFAULT_CURRENCY#$DEFAULT_CURRENCY#g" *.js | ||
sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js | ||
sed -i "s#DOCKER_DEMO#$DEMO#g" *.js | ||
|
||
envsubst '${API_HOST} ${API_PORT}' < /etc/nginx/conf.d/compose.conf.template > /etc/nginx/nginx.conf | ||
|
||
# in Docker Compose we should wait other services start | ||
./wait | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!/bin/sh | ||
set -ex | ||
|
||
# This Entrypoint used when we run Docker container outside of Docker Compose (e.g. in k8s) | ||
|
||
# In production we should replace some values in generated JS code | ||
sed -i "s#DOCKER_API_BASE_URL#$API_BASE_URL#g" *.js | ||
sed -i "s#DOCKER_CLIENT_BASE_URL#$CLIENT_BASE_URL#g" *.js | ||
sed -i "s#DOCKER_SENTRY_DSN#$SENTRY_DSN#g" *.js | ||
sed -i "s#DOCKER_CLOUDINARY_CLOUD_NAME#$CLOUDINARY_CLOUD_NAME#g" *.js | ||
sed -i "s#DOCKER_CLOUDINARY_API_KEY#$CLOUDINARY_API_KEY#g" *.js | ||
sed -i "s#DOCKER_GOOGLE_MAPS_API_KEY#$GOOGLE_MAPS_API_KEY#g" *.js | ||
sed -i "s#DOCKER_GOOGLE_PLACE_AUTOCOMPLETE#$GOOGLE_PLACE_AUTOCOMPLETE#g" *.js | ||
sed -i "s#DOCKER_DEFAULT_LATITUDE#$DEFAULT_LATITUDE#g" *.js | ||
sed -i "s#DOCKER_DEFAULT_LONGITUDE#$DEFAULT_LONGITUDE#g" *.js | ||
sed -i "s#DOCKER_DEFAULT_CURRENCY#$DEFAULT_CURRENCY#g" *.js | ||
sed -i "s#DOCKER_CHATWOOT_SDK_TOKEN#$CHATWOOT_SDK_TOKEN#g" *.js | ||
sed -i "s#DOCKER_DEMO#$DEMO#g" *.js | ||
|
||
# We may not need to use that env vars now in nginx.config, but we may want later. | ||
# Also we just need to copy nginx.conf to correct place anyway... | ||
envsubst '' < /etc/nginx/conf.d/prod.conf.template > /etc/nginx/nginx.conf | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
user nginx; | ||
error_log /var/log/nginx/error.log warn; | ||
pid /var/run/nginx.pid; | ||
|
||
events { | ||
worker_connections 1024; | ||
} | ||
|
||
http { | ||
include /etc/nginx/mime.types; | ||
|
||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | ||
'$status $body_bytes_sent "$http_referer" ' | ||
'"$http_user_agent" "$http_x_forwarded_for"'; | ||
|
||
access_log /var/log/nginx/access.log main; | ||
|
||
#gzip on; | ||
|
||
upstream api { | ||
server ${API_HOST}:${API_PORT}; | ||
} | ||
|
||
server { | ||
listen 4200; | ||
|
||
location / { | ||
root /srv/ever; | ||
try_files $uri $uri/ /index.html; | ||
} | ||
|
||
location /api/ { | ||
proxy_pass http://api; | ||
proxy_set_header Host $http_host; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
user nginx; | ||
error_log /var/log/nginx/error.log warn; | ||
pid /var/run/nginx.pid; | ||
|
||
events { | ||
worker_connections 1024; | ||
} | ||
|
||
http { | ||
include /etc/nginx/mime.types; | ||
|
||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | ||
'$status $body_bytes_sent "$http_referer" ' | ||
'"$http_user_agent" "$http_x_forwarded_for"'; | ||
|
||
access_log /var/log/nginx/access.log main; | ||
|
||
#gzip on; | ||
|
||
server { | ||
listen 4200; | ||
|
||
location / { | ||
root /srv/ever; | ||
try_files $uri $uri/ /index.html; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,11 @@ | ||
# Ever Platform API (Core) | ||
# Ever Demand Platform API (Core) | ||
|
||
ARG NODE_OPTIONS | ||
ARG NODE_ENV | ||
ARG API_BASE_URL | ||
ARG API_HOST | ||
ARG API_PORT | ||
ARG SENTRY_DSN | ||
ARG DB_URI | ||
ARG DB_HOST | ||
ARG DB_NAME | ||
|
@@ -17,18 +18,20 @@ ARG DEMO | |
ARG HOST | ||
ARG PORT | ||
|
||
FROM node:alpine AS dependencies | ||
FROM node:16-alpine3.11 AS dependencies | ||
|
||
LABEL maintainer="[email protected]" | ||
|
||
ENV CI=true | ||
|
||
RUN apk --update add bash \ | ||
&& apk add libexecinfo libexecinfo-dev \ | ||
&& apk --no-cache add --virtual builds-deps build-base \ | ||
snappy dos2unix g++ snappy-dev gcc libgcc libstdc++ linux-headers autoconf automake make nasm python vips-dev git \ | ||
&& npm i -g npm \ | ||
&& apk add --no-cache --virtual build-dependencies build-base \ | ||
snappy dos2unix g++ snappy-dev gcc libgcc libstdc++ linux-headers autoconf automake make nasm python2 py2-setuptools vips-dev git \ | ||
&& npm install --quiet node-gyp -g \ | ||
&& npm config set python /usr/bin/python \ | ||
&& npm install yarn -g --force \ | ||
&& mkdir /srv/ever && chown -R node:node /srv/ever | ||
|
||
COPY wait .deploy/api/entrypoint.compose.sh .deploy/api/entrypoint.prod.sh / | ||
|
@@ -40,13 +43,13 @@ WORKDIR /srv/ever | |
|
||
COPY --chown=node:node package.json yarn.lock lerna.json package.workspaces.json tsconfig.base.json ./ | ||
COPY --chown=node:node packages/core/package.json ./packages/core/package.json | ||
COPY --chown=node:node packages/common/package.json ./packages/common/package.json | ||
COPY --chown=node:node .snyk ./.snyk | ||
COPY --chown=node:node packages/core/.snyk ./packages/core/.snyk | ||
COPY --chown=node:node packages/common ./packages/common | ||
|
||
RUN yarn install --frozen-lockfile && yarn cache clean | ||
RUN yarn bootstrap && yarn cache clean | ||
|
||
FROM node:alpine AS development | ||
FROM node:16-alpine3.11 AS development | ||
|
||
USER node:node | ||
|
||
|
@@ -56,7 +59,7 @@ COPY --chown=node:node --from=dependencies /wait /entrypoint.compose.sh /entrypo | |
COPY --chown=node:node --from=dependencies /srv/ever . | ||
COPY . . | ||
|
||
FROM node:alpine AS build | ||
FROM node:16-alpine3.11 AS build | ||
|
||
WORKDIR /srv/ever | ||
|
||
|
@@ -72,7 +75,7 @@ ENV IS_DOCKER=true | |
|
||
RUN yarn build:server | ||
|
||
FROM node:alpine AS production | ||
FROM node:16-alpine3.11 AS production | ||
|
||
WORKDIR /srv/ever | ||
|
||
|
@@ -112,6 +115,7 @@ ENV NODE_ENV=${NODE_ENV:-production} | |
ENV API_HOST=${API_HOST:-api} | ||
ENV API_PORT=${API_PORT:-5500} | ||
ENV API_BASE_URL=${API_BASE_URL:-http://localhost:5500} | ||
ENV SENTRY_DSN=${SENTRY_DSN} | ||
ENV DB_URI=${DB_URI:-mongodb://localhost/ever_development} | ||
ENV DB_HOST=${DB_HOST:-localhost} | ||
ENV DB_NAME=${DB_NAME:-ever_development} | ||
|
Oops, something went wrong.