Commit 9b04d989 authored by Surya singh's avatar Surya singh Committed by surya singh
Browse files

Added docker for core and admin

parent a3ae58c9
Loading
Loading
Loading
Loading
+59 −0
Original line number Diff line number Diff line
FROM node:alpine AS development

RUN apk update \
	&& 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 \
	&& npm install --quiet node-gyp -g \
	&& npm config set python /usr/bin/python \
	&& npm install yarn -g --force

RUN mkdir /srv/ever && chown node:node /srv/ever

USER node

WORKDIR /srv/ever

COPY --chown=node:node package.json yarn.lock lerna.json package.workspaces.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

RUN yarn install

FROM node:alpine AS production

ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.6.0/wait /wait

RUN npm install cross-env -g \
	&& npm install pm2 -g --unsafe-perm \
	&& chmod +x /wait

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

USER node

WORKDIR /srv/ever

ARG NODE_OPTIONS="--max-old-space-size=2048"
ENV NODE_OPTIONS $NODE_OPTIONS
ENV NODE_ENV production

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

EXPOSE 5500 5501 5050 5555

CMD /wait \
	&& yarn run:admin
 No newline at end of file
+57 −0
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ RUN apk update \
	snappy g++ snappy-dev gcc libgcc libstdc++ linux-headers autoconf automake make nasm python git \
	&& npm install --quiet node-gyp -g \
	&& npm config set python /usr/bin/python \
    && npm install yarn -g	
	&& npm install yarn -g --force

RUN mkdir /srv/ever && chown node:node /srv/ever

@@ -17,15 +17,14 @@ USER node

WORKDIR /srv/ever

COPY --chown=node:node package.json yarn.lock ./
COPY --chown=node:node backend/api/package.json ./backend/api/package.json
COPY --chown=node:node package.json yarn.lock lerna.json package.workspaces.json ./
COPY --chown=node:node packages/core/package.json ./packages/core/package.json
COPY --chown=node:node .snyk ./.snyk
COPY --chown=node:node backend/api/.snyk ./backend/api/.snyk
COPY --chown=node:node packages/core/.snyk ./packages/core/.snyk
COPY --chown=node:node packages/common ./packages/common

RUN yarn install

RUN yarn --cwd ./backend/api install

FROM node:alpine AS production

ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.6.0/wait /wait
@@ -35,7 +34,8 @@ RUN npm install cross-env -g \
    && chmod +x /wait

RUN mkdir /srv/ever && chown node:node /srv/ever
RUN mkdir -p /srv/ever/backend/api/build && chown node:node /srv/ever/backend/api/build
RUN mkdir -p /srv/ever/packages/core && chown node:node /srv/ever/packages/core
RUN mkdir -p /srv/ever/packages/common && chown node:node /srv/ever/packages/common

USER node

@@ -45,12 +45,13 @@ ARG NODE_OPTIONS="--max-old-space-size=2048"
ENV NODE_OPTIONS $NODE_OPTIONS
ENV NODE_ENV production

COPY --from=development --chown=root:root /srv/ever/node_modules ./node_modules
COPY --from=development --chown=root:root /srv/ever/backend/api/node_modules ./backend/api/node_modules

COPY . .
COPY --from=development --chown=node:node /srv/ever/node_modules ./node_modules
COPY --from=development --chown=node:node /srv/ever/packages/core/node_modules ./packages/core/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/core ./packages/core

EXPOSE 5500 5501 5050 5555

CMD /wait \
    && cross-env NODE_ENV=production NODE_OPTIONS=--max_old_space_size=2048 yarn --cwd ./backend/api node build/main.js
 No newline at end of file
	&& yarn --cwd ./packages/common build && yarn run:server
 No newline at end of file
+59 −0
Original line number Diff line number Diff line
FROM node:alpine AS development

RUN apk update \
	&& 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 \
	&& npm install --quiet node-gyp -g \
	&& npm config set python /usr/bin/python \
	&& npm install yarn -g --force

RUN mkdir /srv/ever && chown node:node /srv/ever

USER node

WORKDIR /srv/ever

COPY --chown=node:node package.json yarn.lock lerna.json package.workspaces.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

RUN yarn install

FROM node:alpine AS production

ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.6.0/wait /wait

RUN npm install cross-env -g \
	&& npm install pm2 -g --unsafe-perm \
	&& chmod +x /wait

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

USER node

WORKDIR /srv/ever

ARG NODE_OPTIONS="--max-old-space-size=2048"
ENV NODE_OPTIONS $NODE_OPTIONS
ENV NODE_ENV production

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

EXPOSE 5500 5501 5050 5555

CMD /wait \
	&& yarn run:shopweb
 No newline at end of file
+27 −6
Original line number Diff line number Diff line
@@ -15,12 +15,32 @@ services:
        networks:
            - overlay

    api:
        container_name: api
        image: ever-api:latest
    admin-web:
        container_name: admin-web
        image: ever-admin-web:latest
        build:
            context: .
            dockerfile: .deploy/backend/api/Dockerfile
            dockerfile: .deploy/admin-web-angular/Dockerfile
        environment:
            NODE_ENV: production
        restart: on-failure
        depends_on:
            - core
        volumes:
            - .:/srv/ever
            - root_node_modules:/srv/ever/node_modules
            - admin_web_node_modules:/srv/ever/packages/admin-web/node_modules
        ports:
            - 4200:4200
        networks:
            - overlay

    core:
        container_name: core
        image: ever-core:latest
        build:
            context: .
            dockerfile: .deploy/core/Dockerfile
        environment:
            NODE_ENV: production
            WAIT_HOSTS: mongo:27017
@@ -33,7 +53,7 @@ services:
        volumes:
            - .:/srv/ever
            - root_node_modules:/srv/ever/node_modules
            - api_node_modules:/srv/ever/backend/api/node_modules
            - core_node_modules:/srv/ever/packages/core/node_modules
        ports:
            - 5500:5500
            - 5501:5501
@@ -44,9 +64,10 @@ services:

volumes:
    root_node_modules:
    api_node_modules:
    core_node_modules:
    certificates:
    mongo_data:
    admin_web_node_modules:

networks:
    overlay:
+8 −0
Original line number Diff line number Diff line
.git
.gitignore
.gitmodules
README.md
docker
node_modules
tmp
Loading