commit
cbf2a6e39d
3 changed files with 57 additions and 7 deletions
|
@ -1 +1,9 @@
|
|||
node_modules
|
||||
node_modules/
|
||||
docs/
|
||||
Dockerfile
|
||||
*.md
|
||||
.git
|
||||
.gitignore
|
||||
.gitmodules
|
||||
docker-compose.yml
|
||||
docker-compose-local.yml
|
30
Dockerfile
30
Dockerfile
|
@ -1,8 +1,12 @@
|
|||
FROM node:10.14-alpine
|
||||
# Mutistaged Node.js Build
|
||||
FROM node:10-alpine as builder
|
||||
|
||||
RUN apk add --update pwgen netcat-openbsd python make gcc git g++ bash imagemagick
|
||||
# Install system dependencies
|
||||
RUN set -ex; \
|
||||
apk add --update --no-cache \
|
||||
make gcc g++ git
|
||||
|
||||
# First install dependencies
|
||||
# Copy package.json dependencies
|
||||
COPY server/package.json /app/server/package.json
|
||||
COPY server/package-lock.json /app/server/package-lock.json
|
||||
COPY client/package.json /app/client/package.json
|
||||
|
@ -14,13 +18,29 @@ COPY zone-mta/package-lock.json /app/zone-mta/package-lock.json
|
|||
|
||||
WORKDIR /app/
|
||||
|
||||
RUN for idx in client shared server zone-mta; do (cd $idx && npm install); done
|
||||
# Install dependencies in each directory
|
||||
RUN set -ex; \
|
||||
for idx in client shared server zone-mta; do (cd $idx && npm install); done
|
||||
|
||||
# Later, copy the app files. That improves development speed as buiding the Docker image will not have
|
||||
# to download and install all the NPM dependencies every time there's a change in the source code
|
||||
COPY . /app
|
||||
|
||||
RUN cd client && npm run build
|
||||
RUN set -ex; \
|
||||
cd client && \
|
||||
npm run build
|
||||
|
||||
# Final Image
|
||||
FROM node:10-alpine
|
||||
|
||||
WORKDIR /app/
|
||||
|
||||
# Install system dependencies
|
||||
RUN set -ex; \
|
||||
apk add --update --no-cache \
|
||||
pwgen netcat-openbsd bash imagemagick
|
||||
|
||||
COPY --from=builder /app/ /app/
|
||||
|
||||
EXPOSE 3000 3003 3004
|
||||
ENTRYPOINT ["bash", "/app/docker-entrypoint.sh"]
|
||||
|
|
|
@ -12,6 +12,9 @@ Optional parameters:
|
|||
--mongoHost XXX - sets mongo host (default: mongo)
|
||||
--redisHost XXX - sets redis host (default: redis)
|
||||
--mySqlHost XXX - sets mysql host (default: mysql)
|
||||
--mySqlDatabase XXX - sets mysql database (default: mailtrain)
|
||||
--mySqlUser XXX - sets mysql user (default: mailtrain)
|
||||
--mySqlPassword XXX - sets mysql password (default: mailtrain)
|
||||
--withLdap - use if you want to enable LDAP authentication
|
||||
--ldapHost XXX - LDAP Host for authentication (default: ldap)
|
||||
--ldapPort XXX - LDAP port (default: 389)
|
||||
|
@ -43,6 +46,9 @@ ldapUidTag=""
|
|||
mongoHost=mongo
|
||||
redisHost=redis
|
||||
mySqlHost=mysql
|
||||
mySqlDatabase=mailtrain
|
||||
mySqlUser=mailtrain
|
||||
mySqlPassword=mailtrain
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
|
@ -77,6 +83,18 @@ while [ $# -gt 0 ]; do
|
|||
mySqlHost="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mySqlDatabase)
|
||||
mySqlDatabase="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mySqlUser)
|
||||
mySqlUser="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mySqlPassword)
|
||||
mySqlPassword="$2"
|
||||
shift 2
|
||||
;;
|
||||
--withLdap)
|
||||
withLdap=true
|
||||
shift 1
|
||||
|
@ -156,6 +174,9 @@ www:
|
|||
|
||||
mysql:
|
||||
host: $mySqlHost
|
||||
database: $mySqlDatabase
|
||||
user: $mySqlUser
|
||||
password: $mySqlPassword
|
||||
|
||||
redis:
|
||||
enabled: true
|
||||
|
@ -199,3 +220,4 @@ while ! nc -z $mongoHost 27017; do sleep 1; done
|
|||
|
||||
cd server
|
||||
NODE_ENV=production node index.js
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue