Răsfoiți Sursa

improve Dockerfile

jomo 4 ani în urmă
părinte
comite
019ca37037
3 a modificat fișierele cu 42 adăugiri și 49 ștergeri
  1. 6 0
      .dockerignore
  2. 28 40
      Dockerfile
  3. 8 9
      README.md

+ 6 - 0
.dockerignore

@@ -0,0 +1,6 @@
+.*
+*.md
+Dockerfile
+LICENSE
+images/
+node_modules/

+ 28 - 40
Dockerfile

@@ -1,47 +1,35 @@
-FROM node:12-alpine
-
-ARG AVATAR_MIN
-ARG AVATAR_MAX
-ARG AVATAR_DEFAULT
-ARG RENDER_MIN
-ARG RENDER_MAX
-ARG RENDER_DEFAULT
-ARG FACE_DIR
-ARG HELM_DIR
-ARG SKIN_DIR
-ARG RENDER_DIR
-ARG CAPE_DIR
-ARG CACHE_LOCAL
-ARG CACHE_BROWSER
-ARG EPHEMERAL_STORAGE
-ARG REDIS_URL
-ARG PORT
-ARG BIND
-ARG EXTERNAL_HTTP_TIMEOUT
-ARG DEBUG
-ARG LOG_TIME
-ARG SPONSOR_SIDE
-ARG TOP_RIGHT
-
-ENV NODE_ENV production
+FROM node:12-alpine AS builder
 
-RUN apk --no-cache --virtual .build-deps add git python build-base
-RUN apk --no-cache --virtual .canvas-deps add cairo-dev pango-dev jpeg-dev giflib-dev
+RUN apk --no-cache add git python build-base redis cairo-dev pango-dev jpeg-dev giflib-dev
 
-RUN mkdir -p /crafatar/images/faces
-RUN mkdir -p /crafatar/images/helms
-RUN mkdir -p /crafatar/images/skins
-RUN mkdir -p /crafatar/images/renders
-RUN mkdir -p /crafatar/images/capes
+RUN adduser -D app
+USER app
 
-VOLUME /crafatar/images
+COPY --chown=app package.json package-lock.json /home/app/crafatar/
+WORKDIR /home/app/crafatar
+RUN npm install
 
-COPY package.json www.js config.js crafatar/
-COPY lib/ crafatar/lib/
+COPY --chown=app . .
+RUN mkdir -p images/faces images/helms images/skins images/renders images/capes
 
-WORKDIR /crafatar
+ARG VERBOSE_TEST
+ARG DEBUG
+RUN nohup redis-server & npm test
 
-RUN npm install
 
-EXPOSE 3000
-ENTRYPOINT npm start
+FROM node:12-alpine
+RUN apk --no-cache add cairo pango jpeg giflib
+RUN adduser -D app
+USER app
+RUN mkdir /home/app/crafatar
+WORKDIR /home/app/crafatar
+RUN mkdir -p images/faces images/helms images/skins images/renders images/capes
+
+COPY --chown=app --from=builder /home/app/crafatar/node_modules/ node_modules/
+COPY --chown=app package.json www.js config.js ./
+COPY --chown=app lib/ lib/
+
+VOLUME /home/app/crafatar/images
+ENV NODE_ENV production
+ENTRYPOINT ["npm", "start"]
+EXPOSE 3000

+ 8 - 9
README.md

@@ -34,6 +34,14 @@ Please [visit the website](https://crafatar.com) for details.
 
 # Installation
 
+## Docker
+
+```sh
+docker network create crafatar
+docker run --net crafatar -d --name redis redis
+docker run --net crafatar -v crafatar-images:/crafatar/images -e REDIS_URL=redis://redis -p 3000:3000 crafatar/crafatar
+```
+
 ## Manual
 
 - Install [nodejs](https://nodejs.org/) 12 (LTS)
@@ -44,15 +52,6 @@ Please [visit the website](https://crafatar.com) for details.
 
 Crafatar is now available at http://0.0.0.0:3000.
 
-## Docker
-
-```sh
-docker pull crafatar/crafatar
-docker network create crafatar
-docker run --net crafatar -d --name redis redis
-docker run --net crafatar -v crafatar-images:/crafatar/images -e REDIS_URL=redis://redis -p 3000:3000 crafatar/crafatar
-```
-
 ## Configration / Environment variables
 
 See the `config.js` file.