-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
50 lines (31 loc) · 952 Bytes
/
Dockerfile
File metadata and controls
50 lines (31 loc) · 952 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
FROM alpine:3.13.5 AS base
RUN /usr/sbin/addgroup -g 3000 ruby \
&& /usr/sbin/adduser -s /bin/sh -G ruby -D -u 3000 rack
ENV GEM_HOME=/rack-app/gems
#---
FROM base AS builder
RUN /sbin/apk add --no-cache ruby ruby-bundler \
ruby-dev make gcc libc-dev
COPY --chown=rack:ruby Gemfile /rack-app/
WORKDIR /rack-app
USER rack
RUN /bin/sed -i.orig \
-e '/^[[:space:]]*ruby/d' \
-e '/google-cloud/d' \
Gemfile \
&& /usr/bin/bundle install --without=development:test
#---
FROM base AS packager
COPY --chown=rack:ruby . /rack-app
COPY --from=builder /rack-app/gems /rack-app/gems
#---
FROM base
LABEL mantainer="pedroche@me.com"
COPY --from=packager /rack-app /rack-app
RUN /sbin/apk add --no-cache ruby ruby-bundler; /bin/mkdir -m 777 /rack-app/run
WORKDIR /rack-app
USER rack
EXPOSE 3000
VOLUME /rack-app/public
ENV RACK_ENV=production PORT=3000
ENTRYPOINT ["/rack-app/gems/bin/puma"]