1
0

Dockerfile 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. FROM ruby:2.4.1-alpine
  2. LABEL maintainer="https://github.com/tootsuite/mastodon" \
  3. description="A GNU Social-compatible microblogging server"
  4. ENV UID=991 GID=991 \
  5. RAILS_SERVE_STATIC_FILES=true \
  6. RAILS_ENV=production NODE_ENV=production
  7. EXPOSE 3000 4000
  8. WORKDIR /mastodon
  9. RUN echo "@edge https://nl.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
  10. && apk -U upgrade \
  11. && apk add -t build-dependencies \
  12. build-base \
  13. libxml2-dev \
  14. libxslt-dev \
  15. postgresql-dev \
  16. protobuf-dev \
  17. python \
  18. && apk add \
  19. ca-certificates \
  20. ffmpeg \
  21. file \
  22. git \
  23. imagemagick@edge \
  24. libpq \
  25. libxml2 \
  26. libxslt \
  27. nodejs-npm@edge \
  28. nodejs@edge \
  29. protobuf \
  30. su-exec \
  31. tini \
  32. && npm install -g npm@3 && npm install -g yarn \
  33. && update-ca-certificates \
  34. && rm -rf /tmp/* /var/cache/apk/*
  35. COPY Gemfile Gemfile.lock package.json yarn.lock /mastodon/
  36. RUN bundle install --deployment --without test development \
  37. && yarn --ignore-optional --pure-lockfile
  38. COPY . /mastodon
  39. COPY docker_entrypoint.sh /usr/local/bin/run
  40. RUN chmod +x /usr/local/bin/run
  41. VOLUME /mastodon/public/system /mastodon/public/assets /mastodon/public/packs
  42. ENTRYPOINT ["/usr/local/bin/run"]