#ruby-on-rails-4 #docker-compose #dockerfile #mysql2
#рубин на рельсах-4 #докер-сочинение #докерфайл #mysql2
Вопрос:
я попытался обновить mysql2 gem, но там есть ошибки:
Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
я должен обновить mysql2 gem до последней версии, потому что мне нужно выполнить миграцию данных из mysql в postgresql, поэтому нам нужно обновить mysql2 gem. также мне нужно сбросить данные базы данных mysql, поэтому мне нужно обновить mysql2 gem до последней версии. если у кого-нибудь есть предложения, как выполнить эту работу, пожалуйста, помогите мне и напишите по адресу: santu.essence@gmail.com
файл docker:
FROM ruby:2.7.2 SHELL ["/bin/bash", "-c"] RUN apt-get update -y --force-yes RUN apt-get install libtag1-dev -y --force-yes RUN apt-get install -y curl RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - amp;amp; apt-get install nodejs -y # postgresql-client --- postgresql database adapter # RUN apt-get install -y wget sudo pgloader # install ffmpeg # RUN apt-get install checkinstall RUN apt-get update amp;amp; apt-get install -y git build-essential gcc make yasm autoconf automake cmake libtool libmp3lame-dev pkg-config libunwind-dev zlib1g-dev libssl-dev amp;amp; apt-get update amp;amp; apt-get clean RUN apt-get install -y --no-install-recommends libc6-dev libgdiplus wget software-properties-common amp;amp; wget https://www.ffmpeg.org/releases/ffmpeg-4.0.2.tar.gz amp;amp; tar -xzf ffmpeg-4.0.2.tar.gz; rm -r ffmpeg-4.0.2.tar.gz amp;amp; cd ./ffmpeg-4.0.2; ./configure --enable-gpl --enable-libmp3lame --enable-decoder=mjpeg,png --enable-encoder=png --enable-openssl --enable-nonfree amp;amp; cd ./ffmpeg-4.0.2; make amp;amp; cd ./ffmpeg-4.0.2; make install # ffmpeg installation complete amp;amp; rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/app # RUN mkdir -p .bundle amp;amp; printf '%sn%sn' '---' 'BUNDLE_WITHOUT: development:test' gt; .bundle/config COPY Gemfile* ./ RUN gem install bundler -v 2.2.28 RUN bundle install COPY . . # ENTRYPOINT ./entrypoint-web.sh
докер-compose.yml:
version: '3' services: db: image: mysql:5.6.45 restart: always environment: MYSQL_DATABASE: youspin_development MYSQL_USER: root MYSQL_PASSWORD: root MYSQL_ROOT_PASSWORD: root volumes: - ./tmp/db:/var/lib/mysql ports: - 3306:3306 redis: image: redis ports: - 6379:6379 # volumes: # ./tmp/db: # external: true worker: # set the path for Dockerfile build: . command: bash -c "rm -f /usr/src/app/tmp/pids/resque.pid amp;amp; rake app:worker-start " environment: RAILS_ENV: development REDIS_URL: redis://redis:6379/0 volumes: - .:/usr/src/app depends_on: - db - redis web: # set the path for Dockerfile build: . command: bash -c "rm -f /usr/src/app/tmp/pids/server.pid amp;amp; rake assets:clobber app:init app:serve amp;amp; bundle exec rails s -p 3000 -b '0.0.0.0'" environment: RAILS_ENV: development REDIS_URL: redis://redis:6379/0 volumes: - .:/usr/src/app ports: - 3000:3000 depends_on: - db - worker - redis nginx: image: nginx volumes: - ./config/nginx.dev.conf:/etc/nginx/conf.d/default.conf - ./public:/var/www/youspin/public ports: - 80:80 environment: - NGINX_PORT=80 links: - web
Комментарии:
1. Я вижу, ты пользуешься докером. Пожалуйста, обновите
docker-compose.yml
иDockerfile
. Как вы загружаете драгоценные камни? Через том?2.
docker compose build
должно помочь, если вы это сделаетеbundle install
Dockerfile
. Если вы используете томаdocker compose run --rm --no-deps app bundle install
, они также должны работать.3. я загружаю драгоценные камни через файл docker
4. У вас там есть комплект для установки? Обновите файлы, которые я просил выше, пожалуйста.
5. я могу выполнить установку пакета с помощью dockerfile