diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 9744e0b..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,125 +0,0 @@ -# pre-build stage -FROM ruby:3.3.0-alpine3.19 AS pre-builder - -# ARG default to production settings -# For development docker-compose file overrides ARGS -ARG BUNDLE_WITHOUT="development:test" -ENV BUNDLE_WITHOUT ${BUNDLE_WITHOUT} -ENV BUNDLER_VERSION=2.5.9 - -ARG RAILS_SERVE_STATIC_FILES=true -ENV RAILS_SERVE_STATIC_FILES ${RAILS_SERVE_STATIC_FILES} - -ARG RAILS_ENV=production -ENV RAILS_ENV ${RAILS_ENV} - -ARG NODE_OPTIONS="--openssl-legacy-provider" -ENV NODE_OPTIONS ${NODE_OPTIONS} - -ENV YARN_VERSION=4.1.1 -ENV BUNDLER_VERSION=2.5.9 - -ENV BUNDLE_PATH="/gems" - -RUN apk update && apk add --no-cache \ - openssl \ - tar \ - build-base \ - tzdata \ - postgresql-dev \ - postgresql-client \ - git \ - nodejs-current \ - yarn \ - && mkdir -p /var/app \ - && gem install bundler - -RUN corepack enable && corepack prepare yarn@${YARN_VERSION} - -WORKDIR /app - -COPY Gemfile Gemfile.lock ./ - -# natively compile grpc and protobuf to support alpine musl (dialogflow-docker workflow) -# https://github.com/googleapis/google-cloud-ruby/issues/13306 -# adding xz as nokogiri was failing to build libxml -# https://github.com/chatwoot/chatwoot/issues/4045 -RUN apk update && apk add --no-cache build-base musl ruby-full ruby-dev gcc make musl-dev openssl openssl-dev g++ linux-headers xz vips -RUN bundle config set --local force_ruby_platform true - -# Do not install development or test gems in production -RUN if [ "$RAILS_ENV" = "production" ]; then \ - bundle config set without 'development test'; bundle install -j 4 -r 3; \ - else bundle install -j 4 -r 3; \ - fi - - -COPY . /app - -# creating a log directory so that image won't fail when RAILS_LOG_TO_STDOUT is false -# https://github.com/chatwoot/chatwoot/issues/701 -RUN mkdir -p /app/log - -# generate production assets if production environment -RUN if [ "$RAILS_ENV" = "production" ]; then \ - SECRET_KEY_BASE=precompile_placeholder RAILS_LOG_TO_STDOUT=enabled bundle exec rake assets:precompile \ - && rm -rf spec node_modules tmp/cache; \ - fi - -# Generate .git_sha file with current commit hash -RUN git rev-parse HEAD > /app/.git_sha - -# Remove unnecessary files -RUN rm -rf /gems/ruby/3.3.0/cache/*.gem \ - && find /gems/ruby/3.3.0/gems/ \( -name "*.c" -o -name "*.o" \) -delete \ - && rm -rf .git \ - && rm .gitignore - -# final build stage -FROM ruby:3.3.0-alpine3.19 - - -ARG BUNDLE_WITHOUT="development:test" -ENV BUNDLE_WITHOUT ${BUNDLE_WITHOUT} -ENV BUNDLER_VERSION=2.5.9 - -ARG EXECJS_RUNTIME="Disabled" -ENV EXECJS_RUNTIME ${EXECJS_RUNTIME} - -ARG RAILS_SERVE_STATIC_FILES=true -ENV RAILS_SERVE_STATIC_FILES ${RAILS_SERVE_STATIC_FILES} - -ARG BUNDLE_FORCE_RUBY_PLATFORM=1 -ENV BUNDLE_FORCE_RUBY_PLATFORM ${BUNDLE_FORCE_RUBY_PLATFORM} - -ARG RAILS_ENV=production -ENV RAILS_ENV ${RAILS_ENV} -ARG NODE_OPTIONS="--openssl-legacy-provider" -ENV NODE_OPTIONS ${NODE_OPTIONS} - -ENV YARN_VERSION=4.1.1 -ENV BUNDLE_PATH="/gems" - -RUN apk update && apk add --no-cache \ - build-base \ - openssl \ - tzdata \ - postgresql-client \ - imagemagick \ - git \ - vips \ - && gem install bundler - -RUN if [ "$RAILS_ENV" != "production" ]; then \ - apk add --no-cache nodejs-current yarn; \ - fi - -COPY --from=pre-builder /gems/ /gems/ -COPY --from=pre-builder /app /app - -# Copy .git_sha file from pre-builder stage -COPY --from=pre-builder /app/.git_sha /app/.git_sha - -WORKDIR /app - -EXPOSE 3000 \ No newline at end of file diff --git a/docker/dockerfiles/rails.Dockerfile b/docker/dockerfiles/rails.Dockerfile deleted file mode 100644 index 1b59884..0000000 --- a/docker/dockerfiles/rails.Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM shore:development - -RUN chmod +x docker/entrypoints/rails.sh - -EXPOSE 3000 -CMD ["rails", "server", "-b", "0.0.0.0", "-p", "3000"] \ No newline at end of file diff --git a/docker/dockerfiles/vite.Dockerfile b/docker/dockerfiles/vite.Dockerfile deleted file mode 100644 index 23aadaa..0000000 --- a/docker/dockerfiles/vite.Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM shore:development - -RUN chmod +x docker/entrypoints/vite.sh - -EXPOSE 3035 -CMD ["bin/vite dev --clobber"] \ No newline at end of file diff --git a/docker/entrypoints/helpers/pg_database_url.rb b/docker/entrypoints/helpers/pg_database_url.rb deleted file mode 100644 index 2fc9f12..0000000 --- a/docker/entrypoints/helpers/pg_database_url.rb +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env ruby -require "uri" - -# Let DATABASE_URL env take presedence over individual connection params. -if !ENV["DATABASE_URL"].nil? && ENV["DATABASE_URL"] != "" - uri = URI(ENV.fetch("DATABASE_URL", nil)) - puts "export POSTGRES_HOST=#{uri.host} POSTGRES_PORT=#{uri.port} POSTGRES_USERNAME=#{uri.user}" -elsif ENV["POSTGRES_PORT"].nil? || ENV["POSTGRES_PORT"] == "" - puts "export POSTGRES_PORT=5432" -end diff --git a/docker/entrypoints/rails.sh b/docker/entrypoints/rails.sh deleted file mode 100755 index c0126cc..0000000 --- a/docker/entrypoints/rails.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -set -x - -# Remove a potentially pre-existing server.pid for Rails. -rm -rf /app/tmp/pids/server.pid -rm -rf /app/tmp/cache/* - -echo "Waiting for postgres to become ready...." - -# # Let DATABASE_URL env take presedence over individual connection params. -# # This is done to avoid printing the DATABASE_URL in the logs -# $(docker/entrypoints/helpers/pg_database_url.rb) -# PG_READY="pg_isready -h $POSTGRES_HOST -p $POSTGRES_PORT -U $POSTGRES_USERNAME" - -# until $PG_READY -# do -# sleep 2; -# done - -# echo "Database ready to accept connections." - -#install missing gems for local dev as we are using base image compiled for production -bundle install - -# Execute the main process of the container -bin/rails db:setup -bin/rails server -b 0.0.0.0 \ No newline at end of file diff --git a/docker/entrypoints/vite.sh b/docker/entrypoints/vite.sh deleted file mode 100755 index 7ee96fd..0000000 --- a/docker/entrypoints/vite.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -bin/vite dev --clobber \ No newline at end of file