imseldrith commited on
Commit
98f2f56
·
1 Parent(s): 2627127

Update Docker

Browse files
Files changed (1) hide show
  1. Docker +39 -37
Docker CHANGED
@@ -1,53 +1,55 @@
1
- FROM ubuntu:18.04
2
 
3
- COPY docker/scripts/prepare /scripts/
4
- RUN /scripts/prepare
5
 
6
- COPY docker/multi-process/scripts/standalone-packages /scripts/
7
- RUN /scripts/standalone-packages
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  WORKDIR /app
10
 
11
- ENV HOME=/app
 
 
 
 
12
 
13
- ARG UID=1001
14
- RUN useradd -u "$UID" -g 0 -d /app -s /sbin/nologin -c "default user" default
15
 
16
- ENV LC_ALL=en_US.UTF-8
17
- ENV RAILS_ENV=production
18
 
19
- COPY ["Gemfile", "Gemfile.lock", "/app/"]
20
- COPY lib/gemfile_helper.rb /app/lib/
21
- COPY vendor/gems/ /app/vendor/gems/
 
 
 
22
 
23
- # Get rid of annoying "fatal: Not a git repository (or any of the parent directories): .git" messages
24
- RUN umask 002 && git init && \
25
- bundle config set --local path vendor/bundle && \
26
- bundle config set --local without 'test development' && \
27
- APP_SECRET_TOKEN=secret DATABASE_ADAPTER=mysql2 ON_HEROKU=true bundle install -j 4
28
 
29
- COPY ./ /app/
30
 
31
- ARG OUTDATED_DOCKER_IMAGE_NAMESPACE=false
32
- ENV OUTDATED_DOCKER_IMAGE_NAMESPACE=${OUTDATED_DOCKER_IMAGE_NAMESPACE}
33
 
34
- RUN umask 002 && \
35
- APP_SECRET_TOKEN=secret DATABASE_ADAPTER=mysql2 ON_HEROKU=true bundle exec rake assets:clean assets:precompile && \
36
- chmod g=u /app/.env.example /app/Gemfile.lock /app/config/ /app/tmp/ && \
37
- chown -R "$UID" /app
38
 
39
- EXPOSE 3000
40
 
41
- COPY docker/multi-process/scripts/supervisord.conf /etc/supervisor/
42
- COPY ["docker/multi-process/scripts/bootstrap.conf", \
43
- "docker/multi-process/scripts/foreman.conf", \
44
- "docker/multi-process/scripts/mysqld.conf", "/etc/supervisor/conf.d/"]
45
- COPY ["docker/multi-process/scripts/bootstrap.sh", \
46
- "docker/multi-process/scripts/foreman.sh", \
47
- "docker/multi-process/scripts/init", \
48
- "docker/scripts/setup_env", "/scripts/"]
49
- CMD ["/scripts/init"]
50
 
51
- USER $UID
52
 
53
- VOLUME /var/lib/mysql
 
1
+ FROM node:lts-alpine AS frontend
2
 
3
+ RUN npm install pnpm -g
 
4
 
5
+ WORKDIR /app
6
+
7
+ COPY ./package.json /app
8
+
9
+ COPY ./pnpm-lock.yaml /app
10
+
11
+ RUN pnpm install
12
+
13
+ COPY . /app
14
+
15
+ RUN pnpm run build
16
+
17
+ # build backend
18
+ FROM node:lts-alpine as backend
19
+
20
+ RUN npm install pnpm -g
21
 
22
  WORKDIR /app
23
 
24
+ COPY /service/package.json /app
25
+
26
+ COPY /service/pnpm-lock.yaml /app
27
+
28
+ RUN pnpm install
29
 
30
+ COPY /service /app
 
31
 
32
+ RUN pnpm build
 
33
 
34
+ # service
35
+ FROM node:lts-alpine
36
+
37
+ RUN npm install pnpm -g
38
+
39
+ WORKDIR /app
40
 
41
+ COPY /service/package.json /app
 
 
 
 
42
 
43
+ COPY /service/pnpm-lock.yaml /app
44
 
45
+ RUN pnpm install --production && rm -rf /root/.npm /root/.pnpm-store /usr/local/share/.cache /tmp/*
 
46
 
47
+ COPY /service /app
 
 
 
48
 
49
+ COPY --from=frontend /app/dist /app/public
50
 
51
+ COPY --from=backend /app/build /app/build
 
 
 
 
 
 
 
 
52
 
53
+ EXPOSE 7680
54
 
55
+ CMD ["pnpm", "run", "prod"]