fix specs, add migrator

This commit is contained in:
Dylan Knutson
2024-12-18 22:53:05 +00:00
parent f2074a8544
commit eca9b2e5cb
22 changed files with 1012 additions and 171 deletions

View File

@@ -22,6 +22,23 @@ RUN rake compile
FROM ruby:3.2.6
USER root
# apt caching & install packages
RUN rm -f /etc/apt/apt.conf.d/docker-clean; \
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN \
--mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && \
apt-get install --no-install-recommends --no-install-suggests -y \
libblas-dev liblapack-dev
# preinstall gems that take a long time to install
RUN MAKE="make -j12" gem install bundler -v '2.4.6' --verbose
RUN MAKE="make -j12" gem install faiss -v '0.2.5' --verbose
RUN MAKE="make -j12" gem install rails_live_reload -v '0.3.4' --verbose
RUN bundle config --global frozen 1
# set up nodejs 18.x deb repo
RUN mkdir -p /etc/apt/keyrings && \
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \
@@ -29,23 +46,17 @@ RUN mkdir -p /etc/apt/keyrings && \
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" \
| tee /etc/apt/sources.list.d/nodesource.list
# apt caching & install packages
RUN rm -f /etc/apt/apt.conf.d/docker-clean; \
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN \
--mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && \
apt-get install --no-install-recommends --no-install-suggests -y \
libblas-dev liblapack-dev libvips42 ca-certificates curl gnupg nodejs libpq-dev
WORKDIR /usr/src/app
RUN gem install bundler -v '2.4.6'
RUN gem install faiss -v '0.2.5'
# RUN bundle config --global frozen 1
libvips42 ca-certificates curl gnupg nodejs libpq-dev
COPY --from=native-gems /usr/src/app/gems/xdiff-rb /gems/xdiff-rb
COPY --from=native-gems /usr/src/app/gems/rb-bsdiff /gems/rb-bsdiff
WORKDIR /usr/src/app
COPY Gemfile Gemfile.lock ./
RUN bundle install
@@ -58,7 +69,12 @@ RUN yarn
COPY . .
# precompile assets
RUN RAILS_ENV=production bin/rails assets:precompile
# RUN RAILS_ENV=production bin/rails assets:precompile
RUN mkdir -p tmp/pids
# create user with id=1000 gid=1000
RUN groupadd -g 1000 app && \
useradd -m -d /home/app -s /bin/bash -u 1000 -g 1000 app
RUN chown -R app:app /usr/src/app
USER app
CMD /bin/bash