[Docker] À utiliser à tout moment avec Docker + Rails

introduction

Si vous utilisez Rails et que vous implémentez un traitement périodique, vous mentionnerez probablement «à chaque fois». De plus, l'utilisation de Docker dans un environnement de développement est devenue courante de nos jours. Cette fois, je vais résumer ce à quoi vous devez faire attention lorsque vous l'utilisez dans un tel environnement. Il n'y a pas de code Rails. Il s'agit des paramètres Docker.

environnement

Docker Ruby 2.6.3 Rails 5.2.3

Chose que tu veux faire

Réalisez un traitement périodique à chaque fois dans l'environnement Docker

Conclusion

Il semble que cron n'est pas installé dans Docker par défaut, alors installez et démarrez cron. Veuillez vous référer à un autre article pour savoir comment commencer à tout moment.

Voici les paramètres.

Dockerfile

Dockerfile


FROM ruby:2.6.3 #la version convient à l'environnement

ENV LANG C.UTF-8
ENV TZ Asia/Tokyo

RUN apt-get update -qq && \
    apt-get install -y build-essential \
                       libpq-dev \
                       nodejs \
                       npm \
                       vim \
                       default-mysql-client \
                       cron \ #← Installation
    && rm -rf /var/lib/apt/lists/*

RUN npm install n -g
RUN n 10.15.3
RUN service cron start #← Démarrer cron

RUN gem install bundler -v 2.0.1
RUN gem install mysql2  -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib

RUN mkdir /app
ENV APP_ROOT /app
ENV RAILS_ENV development
WORKDIR $APP_ROOT

ADD ./.git-credentials /root/.git-credentials
RUN git config --global credential.helper store

ADD ./app/Gemfile $APP_ROOT/
ADD ./app/Gemfile.lock $APP_ROOT/

RUN bundle install

ADD ./app/ $APP_ROOT/

Ensuite, construisez et montez le conteneur comme d'habitude.

N'oubliez pas non plus de vérifier le démarrage avec la commande suivante.

$ service cron status

S'il est en cours d'exécution, vous verrez «[ok] cron est en cours d'exécution».

Vous pouvez désormais l'utiliser à tout moment dans l'environnement Docker. En ce qui concerne chaque fois, je pense que les articles d'autres personnes sont bons, alors veuillez vous y référer.

L'article suivant de cette personne @ Esfahan a été très utile. Configurer cron avec Rails chaque fois

Recommended Posts

[Docker] À utiliser à tout moment avec Docker + Rails
Exécuter des rails à chaque fois dans le docker
Utiliser Puphpeteer avec Docker
Utiliser GDAL avec Python avec Docker
[Docker] Construction de l'environnement Rails 5.2 avec docker
Utilisez plusieurs bases de données avec Rails 6.0
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Utilisation de cuda11.0 avec pytorch en utilisant Docker
Construction d'environnement de rails avec Docker (apocalypse personnelle)
Construction de Rails 6 et environnement PostgreSQL avec Docker
Construire un environnement Rails 6 + MySQL avec Docker compose
Déployer sur heroku avec Docker (Rails 6, MySQL)
Utiliser le lien symbolique avec la construction en plusieurs étapes de Docker
Rails Docker-Partie 1-
Rails Docker ~ Partie 2 ~
[Rails] Utiliser jQuery
Comment créer un environnement Rails 6 avec Docker
Présentation de Rspec avec Ruby on Rails x Docker
Créer un graphique simple avec Rails Utiliser gem-chartkick / groupdate
[Rails] Comment créer un environnement avec Docker
Facile à afficher Hello World avec Rails + Docker
Utiliser ProGuard avec Gradle
Construction de l'environnement Rails Docker
Docker x Rails 6 (Mémo)
Lancez MariaDB avec Docker
[Rails 6] Erreur d'exécution avec $ rails s
Exploser Docker avec WSL2
Utilisez XVim2 avec Xcode 12.0.1
Utilisation de CentOS avec LXD
Manipuler le dispositif avec des rails
[Rails] Didacticiel Apprendre avec les rails
Exploitez Emby avec Docker
[Rails] Test avec RSpec
Exécutez Payara avec Docker
Utiliser Webmock avec Rspec
Utiliser des images avec des rails
[Rails] Développement avec MySQL
Prend en charge la multilinguisme avec Rails!
Utilisez jlink avec gradle
Erreur rencontrée avec les notes lors du déploiement de docker sur des rails
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker