箱のプログラミング日記。

えんじにあ奮闘記

Dockerコンテナを立ち上げようとして「OCI runtime create failed」「" 〜 permission denied": unknown.」 と言われたとき

Dockerイメージを元にコンテナを立ち上げようと思ったら権限がないよーと怒られたのでメモ。 $ docker -v Docker version 19.03.12 実現したいこと 用意したDockerfileを元にイメージをbuildして、それを元にコンテナを立ち上げたい。 myimage ├── Dockerfil…

Redisでデータベースを指定して接続する

Redisでデータベースを指定して接続する手順についてまとめていきます。 Redisとは Redisは、オープンソース(BSDライセンス)のメモリ内データ構造ストアであり、データベース、キャッシュ、およびメッセージブローカーとして使用されます。 引用元:Redis…

【RSpec】CSVダウンロードのcontrollerテストを書く

RSpecでCSVダウンロードのcontrollerテストを書く方法をまとめていきます。 環境 ruby 2.4.3 Rails 5.1.5 rspec-rails (3.7.2) factory_bot_rails (4.8.2) 完成したソースコード 先にソースコード貼っちゃいます。 まずはコントローラー app/controllers/use…

Redis is configured to save RDB snapshots, but is currently not able to persist on disk.の対処法

起こったこと redisに一括でデータを挿入するスクリプトを走らせたところ、急に以下のエラーが発生した Redis::CommandError:MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify …

リモート環境にあるRedisに接続する

リモート環境にあるRedisに接続する方法についてまとめていきます。 redis-cliとは そもそもの話。 redis-cliはRedisコマンドライン インタフェースで、直接端末からRedisにコマンドを送信し、サーバによって送信される応答を読み込むことができる単純なプロ…

異なるEC2インスタンス間でssh接続する

AWS

異なるEC2インスタンス間でssh接続する方法についてまとめていきます。 今回は同じサブネット(ネットワーク)内にあるインスタンスAからインスタンスBに接続するケースを想定しています。 →誤記がありました。正しくは「インスタンスB→Aに接続するケース」…

Dockerコンテナのタイムゾーン設定を変更する

Dockerコンテナのタイムゾーン変更でハマったのでメモ。 結論から言うと、docker-compose.ymlに環境変数TZを設定すればうまくいった。 環境 Ruby 2.4.3 Rails...5.1.5 MySQL 5.7 Docker 19.03.12 Dockerコンテナ...app(Rails)/ db(MySQL)/ nginx 流れ そ…

Dockerコンテナでcdコマンドを使いたい

いつものようにDockerコンテナを立ち上げるだけでなくコンテナに入った状態でcdコマンドを使用したいなと思い調べたのでメモ。 OCI runtime exec failed 普通にいつも通りdocker-compose exec コンテナ名にコマンドをつなげる形でdocker-compose exec コンテ…

ActiveRecord::ConcurrentMigrationError:の対処法

capistranoでデプロイする過程でmigrationがエラーで実行できなかったのでメモ。 ActiveRecord::ConcurrentMigrationError こんなエラーが出た rake stderr: rake aborted! ActiveRecord::ConcurrentMigrationError: Cannot run migrations because another …

初心者によるJSのビルド【Node.js / npm / yarn / webpack / babel】

この記事は前回の記事の続きになります。 前回では、そもそものビルドの意味やそれぞれのプラグイン等がどんな役目を果たすのかという基礎的な部分がわかっていなかったので、その辺を理解していきました。 今回は実際にビルドを実行するところまで進めてい…

Node.jsとは?npm / yarnとは?webpack / babel とは??

JSをビルドしようとすると登場する「Node.js」「npm」「yarn」「webpack」「babel」たちがいまいちよくわからず進んできてしまっていたのですが、最近ようやくそれぞれの役割をざっと理解できるところまで到達したのでメモ。 そもそもビルドとは そもそもの…

EC2インスタンスにredisをインストール

業務のプロダクトにおいて、これまでredisはAWSのElastiCacheを使用していたのですが、色々と訳ありで一旦EC2インスタンス内に直接redisをインストールしてしまおうという話になったため対応しました。 やること 現状としては、webサーバーやDBサーバーなど…

GitHubでプロジェクト(Organization)メンバーの権限を変更する

GitHubでプロジェクトメンバーの権限を変更する方法についてまとめていきます。 具体的に言うと、今回は元々mergeの権限が無かったメンバーが自分でmergeできるように変更がしたかったのでその方法を調べました。 GitHubの権限について そもそものGitHubの権…

bundle installでnokogiriのインストールエラー【Rails】

既存のプロジェクトで、これまで問題なくできていたのが突然bundle installをするとnokogiriがインストールできないよって怒られるようになりました。 状況としては、新しいPCへの移行に際して移行アシスタントを使用してアプリケーションやファイル群を全て…

EC2インスタンスのホスト名を変えたい

AWS

先に結論から言ってしまうと、公式に詳しく載ってるので基本的にここを見ればOK Amazon Linux インスタンスのホスト名を変更する - Amazon Elastic Compute Cloud ホスト名とは user:hako$ ssh hoge@13.231.93.211 Last login: Fri Jul 31 20:40:03 2020 __|…

本番とローカルのDBを同期したい(ダンプとリストア)

MySQLでDBのダンプファイルを作成&リストアする方法についてまとめていきます。 ダンプって何 コンピュータの記憶装置(メモリやストレージなど)に記録された内容をまとめて表示、印刷、記録などすること 引用:ダンプとは - IT用語辞典 e-Words 簡単にい…

JOINとLEFT JOINの違いをきちんと理解する

JOINとLEFT JOINの違いをこれまであまりきちんと理解していなかったので改めておさらい。 結論 簡単に結論だけ先にまとめておくと JOINの場合、合致する右表のレコードがない場合は対応する左表のレコードが削除される(結果に出力されない) LEFT JOINの場…

AWSで既存の環境を複製したい〜AMIからインスタンス作成・Route53・サブネット等〜

業務で検証環境の複製を行い、AMI作成〜EC2インスタンス作成〜サブネット周りのところまで一通り網羅できたので書いておきます。 概要 今回の内容は「元からある環境を複製する時に行うこと」がメインになっています。 VPCを作成するところや最初にインスタ…

SQLの基礎の基礎を勉強し直す

これまでなんとなくで学んできたSQLの細かい部分や少し高度な部分を学び直したいなぁと思ってこちらを購入。 https://amzn.to/2CpxmW2 今まで知らなかった部分がいくつかあったので残しておこうと思います。 WHERE NOT は <> で表現できる 基本的すぎるかも…

Dockerのコンテナが立ち上がらない【Rails】

RailsのアプリケーションをDocker環境下で開発しています。 webコンテナ(railsサーバー)、dbコンテナなど複数コンテナの起動をdocker-compose.ymlで管理し、docker-compose up -dで一挙に立ち上がるようにしているのですが、たまにrailsサーバーのコンテナ…

Index name 'index_hoge' on table 'hoge_fugas' already exists と言われた時

migrateしたら遭遇したエラーの対処法。 Index name 'index_hoge' on table 'hoge_fugas' already exists hoge_fugasテーブルのhogeカラムにインデックスを貼ろうとしたらすでに存在するよと言われている感じ。 とりあえず状況を確認してみると bin/rake db:…

NameError: uninitialized constant Annotateの対処法

Railsで発生したエラーの対処法。 NameError: uninitialized constant Annotate stagingサーバーに入ってbundleしたときに以下のエラーがでた。 bundle exec rake db:migrate rake aborted! NameError: uninitialized constant Annotate んーーなんだろう。 …

Uglifier::Error: Unexpected character '`' 【Railsデプロイエラー】

レビュー通って意気揚々とmerge、デプロイ!!...と思ったらエラーでこけた話。 Uglifier::Error: Unexpected character '`' jsをかなりいじったPRだったのですぐに原因が想定できたのだけど、エラー文の通り。 期待しない文字「`」が含まれてるからエラーで…

Rubyで正規表現を使いたい

久しぶりにRuby記事。 前々から苦手意識が拭えなかった正規表現を理解できたのでまとめておく。 正規表現オブジェクト そもそも正規表現自体がオブジェクト。 きちんと考えれば分かることだけど、今までちゃんと意識したことなかった。 正規表現オブジェクト…

JavaScriptの分割代入が便利

Ruby人間がJSを学び直すプロジェクト継続中です。 なんでもRubyに置き換えて考えてしまうのは悪い癖...それで理解度が深まるのであれば良いのかな。 JSでオブジェクトを作成する 分割代入に入る前に、オブジェクトの作成のところから。 空のオブジェクトを作…

JSの関数宣言の基本

Ruby脳の人間が生のJSを学び直そうプロジェクト進行中。 今回は関数宣言についてあやふやだった部分をまとめた。 基本構文 オブジェクトとして定義する場合 function hoge () { 処理 } ある程度のまとまりの処理をオブジェクトとして定義しておいて、いろん…

JavaScriptの型変換〜Rubyと比較〜

最近生のJSをきちんと勉強し始めて、知らなかったことがちょこちょこ出てきたのでRubyと比較しながら書いていきます。 JavaScriptの型変換 文字列に変換 String()関数を使用 String(1); // => "1" String([1, 2, 3]); // => "1,2,3" String(true); // => "tr…

RailsでSendGridのAPIを使用する(4)【テンプレート】

※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 アカウント発行〜有料プラン契約までの導入編はこちら RailsでSendGridのAPIを使用する(1)〜導入〜 - 箱のプログラミング日記。 APIキーの発行やDNSへのレコード登…

RailsでSendGridのAPIを使用する(3)【sendgrid-ruby】

※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 アカウント発行〜有料プラン契約までの導入編はこちら RailsでSendGridのAPIを使用する(1)〜導入〜 - 箱のプログラミング日記。 APIキーの発行やDNSへのレコード登…

RailsでSendGridのAPIを使用する(2)【ドメイン設定・CNAMEレコード】

※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。 前回はアカウント発行と有料プランへの登録までやったので、今回は実際にセンドグリッドの管理画面から各種設定をするところに入っていきたい。 ちなみに前回の記事は…