This post on https://forem.dev/avalerionv/difficulty-installing-forem-on-ubuntu-18-04-tls-4eh6 talks about issues running Forem on Linux. Digging into the issue it seems that podman-compose does not pass the --userns=keep-id flag correctly to podman so files and directories mounted as root and not as the user. This causes permission denied errors.
58 lines
2.1 KiB
Docker
58 lines
2.1 KiB
Docker
FROM quay.io/forem/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 curl 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=forem
|
|
ENV APP_UID=1000
|
|
ENV APP_GID=1000
|
|
ENV APP_HOME=/opt/apps/forem/
|
|
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}"
|
|
|
|
# Comment out running as the forem user due to this issue with podman-compose:
|
|
# https://github.com/containers/podman-compose/issues/166
|
|
# 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/{assets,images,packs,podcasts,uploads}
|
|
|
|
COPY . "${APP_HOME}"
|
|
|
|
VOLUME "${APP_HOME}"/public/
|
|
|
|
ENTRYPOINT ["./scripts/entrypoint.sh"]
|
|
|
|
CMD ["bundle", "exec", "rails","server","-b","0.0.0.0","-p","3000"]
|