forked from forem/forem
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Containerfile
58 lines (43 loc) · 2.06 KB
/
Containerfile
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
51
52
53
54
55
56
57
58
FROM quay.io/devto/ruby:2.7.1
USER root
RUN curl -sL https://dl.yarnpkg.com/rpm/yarn.repo -o /etc/yum.repos.d/yarn.repo && \
dnf install -y bash git ImageMagick iproute less libcurl libcurl-devel \
libffi-devel libxml2-devel libxslt-devel nodejs pcre-devel \
postgresql postgresql-devel ruby-devel tzdata yarn \
&& dnf -y clean all \
&& rm -rf /var/cache/yum
ENV APP_USER=devto
ENV APP_UID=1000
ENV APP_GID=1000
ENV APP_HOME=/opt/apps/devto/
RUN mkdir -p ${APP_HOME} && chown "${APP_UID}":"${APP_GID}" "${APP_HOME}"
RUN groupadd -g "${APP_GID}" "${APP_USER}" && \
adduser -u "${APP_UID}" -g "${APP_GID}" -d "${APP_HOME}" "${APP_USER}"
ENV BUNDLER_VERSION=2.1.4
RUN gem install bundler:"${BUNDLER_VERSION}"
ENV GEM_HOME=/opt/apps/bundle/
ENV BUNDLE_SILENCE_ROOT_WARNING=1 BUNDLE_APP_CONFIG="${GEM_HOME}"
ENV PATH "${GEM_HOME}"/bin:$PATH
RUN mkdir -p "${GEM_HOME}" && chown "${APP_UID}":"${APP_GID}" "${GEM_HOME}"
ENV DOCKERIZE_VERSION=v0.6.1
RUN wget https://github.com/jwilder/dockerize/releases/download/"${DOCKERIZE_VERSION}"/dockerize-linux-amd64-"${DOCKERIZE_VERSION}".tar.gz \
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-"${DOCKERIZE_VERSION}".tar.gz \
&& rm dockerize-linux-amd64-"${DOCKERIZE_VERSION}".tar.gz
WORKDIR "${APP_HOME}"
# As soon as this:
# https://github.com/containers/libpod/issues/6153
# issue is fixed for Linux users we can uncomment the line below so we are not
# running the app as the root user. :toot:
# USER "${APP_USER}"
COPY ./.ruby-version "${APP_HOME}"
COPY ./Gemfile ./Gemfile.lock "${APP_HOME}"
# Fixes https://github.com/sass/sassc-ruby/issues/146
RUN bundle config build.sassc --disable-march-tune-native
RUN bundle check || bundle install --jobs 20 --retry 5
COPY ./package.json ./yarn.lock ./.yarnrc "${APP_HOME}"
COPY ./.yarn "${APP_HOME}"/.yarn
RUN yarn install
RUN mkdir -p "${APP_HOME}"/public/{uploads,images,podcasts}
COPY . "${APP_HOME}"
ENTRYPOINT ["./scripts/entrypoint.sh"]
CMD ["bundle", "exec", "rails","server","-b","0.0.0.0","-p","3000"]