60 lines
1.2 KiB
Docker
60 lines
1.2 KiB
Docker
FROM ubuntu:20.04 AS build
|
|
|
|
RUN \
|
|
useradd --create-home danbooru && \
|
|
apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
|
|
build-essential \
|
|
ruby \
|
|
ruby-dev \
|
|
ruby-bundler \
|
|
git \
|
|
nodejs \
|
|
yarnpkg \
|
|
webpack \
|
|
libvips-dev \
|
|
libxml2-dev \
|
|
postgresql-server-dev-all && \
|
|
|
|
# webpacker expects the binary to be called `yarn`, but debian/ubuntu installs it as `yarnpkg`.
|
|
ln -sf /usr/bin/yarnpkg /usr/bin/yarn
|
|
|
|
WORKDIR /app
|
|
USER danbooru
|
|
|
|
COPY Gemfile Gemfile.lock ./
|
|
RUN BUNDLE_DEPLOYMENT=true bundle install --jobs 4
|
|
|
|
COPY package.json yarn.lock ./
|
|
RUN yarn install
|
|
|
|
COPY . .
|
|
|
|
ARG DATABASE_URL=postgresql://0.0.0.0
|
|
ARG DANBOORU_SECRET_KEY_BASE=1234
|
|
ARG RAILS_ENV=production
|
|
RUN bin/rails assets:precompile && ln -sf public/packs public/packs-test
|
|
RUN rm -rf node_modules log tmp && mkdir log tmp
|
|
|
|
FROM ubuntu:20.04
|
|
|
|
RUN \
|
|
useradd --create-home danbooru && \
|
|
apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
|
|
ruby \
|
|
ffmpeg \
|
|
mkvtoolnix \
|
|
libvips \
|
|
libxml2 \
|
|
postgresql-client
|
|
|
|
WORKDIR /app
|
|
USER danbooru
|
|
|
|
COPY --from=build /app .
|
|
|
|
VOLUME ["/app/public/data"]
|
|
ENTRYPOINT ["/app/bin/rails"]
|
|
CMD ["server"]
|