やる気がストロングZERO

やる気のストロングスタイル

作業メモ

docker-compose.yamlのcommandで"&&"とか"&"をつかったコマンドを使いたい。

こんな感じでcommandを書くとコンテナ起動に失敗した。 version: "3" services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1 command: 'yarn install --check-files && bundle exec rails s & nginx -g "daemon off;"…

業務でTDDしにくいけどTDDしてみた

業務でもTDDをやるのは有用だと思ってる。 個人的には必須だと思ってる。 いままで数カ所の現場で働いてきたけど、なぜかTDDを導入しているところは無かった。 有用だと思う理由とか経験 実装完了し、コードレビューや開発内手動実行テストが通った後、最終…

【覚書】Ubuntuのシェルをfishにした

環境 Ubuntu 18.04.3 LTS デフォルトシェルをbashに戻した zshを使ってたけどとりあえず、bashに戻した。 fishをパッケージからインストール GitHub - fish-shell/fish-shell: The user-friendly command line shell. sudo apt-add-repository ppa:fish-shel…

【Docker Ceotos7】systemctlが使えるようにする

dockerでcentos7のコンテナを作って普通にsystemctlを使うと怒られる # systemctl Failed to get D-Bus connection: Operation not permitted privilegedオプションを有効化し、/sbin/initで起動してやると使えるようになるらしい。 version: '3' services: …

【Docker】何もしないコンテナを起動しっぱなしにしたい時

こんな感じで、tail -f /dev/nullが実行されるようにしておく。 # docker-compose.yml version: '3' services: master: image: ubuntu:18.04 command: tail -f /dev/null 他にも何もしないwhileループを書く方法とかもあるっぽい。

【RubyMine】docker-composeのコンテナ内の実行環境でラインデバッグするための設定

dockerコンテナ内にしか実行環境がない(ローカルでは実行できない)場合にrubymindeでラインデバッグ出来るようにするための設定を調べて設定した。メモ。 ここを見ながら設定したらできた。 リモートインタープリターとしてのDocker Composeの使用 - ヘル…

railsのrake taskをcron実行する

普通にcrontabでこんな感じで設定したけど動かなかった。 */10 * * * * cd /app && bundle exec rake rake:task RAILS_ENV=production 最終的にはwheneverというgemを使って解決した。 GitHub - javan/whenever: Cron jobs in Ruby なぜ動かん? cron実行の…

docker-compose execでcdしたい

普通にやるとエラーがでる $ docker-compose exec service_name cd /your_dir/ && bundle exec rspec bash -cでやるとできた。 $ docker-compose exec service_name /bin/bash -c "cd /your_dir/ && bundle exec rspec"

【Rails】autoloadについて

app/以下に自分でディレクトリをほってclassを定義したときにどのように呼び出したらいいのかよくわからなかったが、ここに記載されてた。 railsguides.jp app/some_dir/some_class.rb だったら以下の名前でclass定義して class SomeClass ... end 以下の感…

【rails】既存DBの初期migrationファイルの作り方

参考) Rails - schema.rb(既存DBを使ったアプリ作成) - Qiita rails db:schema:dump でschema.rbを生成する マイグレーションファイルにschema.rbの中身をコピペする class CreateTables < ActiveRecord::Migration[5.0] def change # ここにschema.rbの…

【rails】dockerを使ってproductionでの確認ができる環境を構築する設定ファイル郡を作った

インフラ知識詳しくないので、とりあえず最低限動くところまで。 github.com これは何? railsの開発サーバーでの開発と、 dockerを使ってproduction環境での確認ができる環境を構築する設定ファイル郡 バージョン ruby 2.6.3 rails 6 構築方法 railsの新規…

Twitter APIを使うために必要な作業

地味に複雑で忘れるのでメモ。 網羅はしていないので、不足があれば公式で調べる。 Getting started — Twitter Developers developer登録 (以前は登録の必要はなかった) twitterに開発者として登録する必要がある。 twitterアカウントに紐づく。 100文字程…

ネットワークの疎通デバッグ(ping, traceroute, curl, nslookup)

あまりネットワーク周りの調査をする機会がなかったのでふわっとしか認識してなかった疎通調査の方法についてまとめる。 nslookup ドメイン名からIPアドレスを引けているかの確認ができる。 nslookup example.com ping ネットワーク層での通信疎通が確認でき…

【Docker】長期稼働でi-nodeを使い切ってしまう?

※一時解消はできたが原因解明には至らず。 Dockerの勉強の一環で、Twitterの投稿から画像リンク(コスプレ関係)のurlを収集して一覧しているwebサービスをEC2インスタンス一つにDockerコンテナで構築している。 http://cos.mixmaru.com 構成 appサーバーコ…

【rails】コード読んだメモ

rubyのコードリーディングの練習でrailsのコードを少し読んだのでメモ railsでのautoloadについて railsではActiveSupportというmoduleが使われていて、色々便利な機能を提供してくれているらしい。 その一つにActiveSupport::Autoloadがあって、これをexten…

【Rails】 Capybaraの使い方メモ

参考) https://www.rubydoc.info/github/jnicklas/capybara/Capybara https://github.com/teamcapybara/capybara https://qiita.com/morrr/items/0e24251c049180218db4 railsへのインストール Gemfilesへ追記し、bundle installでインストールする。 rails …

【Rails】RSpecの使い方メモ

参考: GitHub - rspec/rspec-rails: RSpec for Rails-3+ RSpec Expectations 3.8 - RSpec Expectations - RSpec - Relish インストール Gemfileに追記 # Run against the latest stable release group :development, :test do gem 'rspec-rails', '~> 3.8' …

Railsの開発環境とステージング環境をDockerを使って構築したのでメモ

Railsの開発環境とステージング環境をDockerを使って構築してみた。 注意:Docker周りインフラ周りについてエキスパートではないので本当にこれが要求を満たせているのかは不明 ディレクトリ構成 . ├── app │ ├── Dockerfile # webサーバー構築用 │ ├── conf…

【Django】ロギング設定について

いまいち使い方・設定の仕方がよくわからなかったので色々しらべた。 現状の知識をメモっとく。 Djangoで使われているロギング機構は、 別にDjango独自の機能ではなく、pythonの標準で用意されているloggingが使用されているという事のよう。 なので、特にDj…

pyenvでインストールしたpythonのpipでインストールしたuwsgiをwebサーバーで使用するための設定

webサーバー環境で実行されるuwsgiを、pyenvで入れたpythonのpipでインストールしたuwsgiにするにはどうすればいいのか考えた。 pyenvでインストールされたpython関連のコマンドを使うには予め export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/b…

【Django】Custom Command と ArgumentParserの使い方メモ

DjangoでCustom commandの作り方とその時使うArgumentParserの使い方のざっくりメモ 参考) カスタム django-admin コマンドの実装 | Django documentation | Django ArgumentParserの使い方を簡単にまとめた - Qiita app_dir/management/commands/以下にフ…

ターミナル環境(zsh)の設定メモ

Ubuntuを開発環境にするにあたり、ターミナル環境の整備を行っている。 ググりながら良さげな設定をチョイス中。 知識不足でなかなか情報どおりの設定ができなかったりするが、少しずつ理解しながら設定していく。 zshインストール zshをインストール sudo a…

Ubuntuにてmacの英数・かなキーで日本語入力切り替えするための設定方法

macキーボードを認識させる デフォルトでは英数・かなキーおしても認識していなかったので下記設定を行った。 参考) https://qiita.com/koreyou/items/341e1fac95c72d9743ad sudo dpkg-reconfigure keyboard-configuration を実行して、下記を選択 Apple ア…

個人開発環境をUbuntuにすることを検討・検証中

現在個人開発ではmacbookpro 13インチ 2014を使っている。 なんとなく次のマシンを買うことを考えているが、macではないという選択肢もありかとUbuntuを検討している。 なぜか macやappleに依存しているのが嫌になってきた。 実際macはよくできていると思う…

【PostgreSQL】 online alter tableを考える

Django migrationをオンラインで行えるのかどうか考えていた。 オンラインで行えるのかどうかはDjangoのmigrationコマンドの問題ではなく、使っているDB(今回の場合だとPostgreSQL)がどのようにロックを行うのかによるということがわかった。 では具体的に…

git submodule覚書

参考) Git - サブモジュール gitリポジトリをネストしたい場合がある。 プログラム作成中に汎用的なclassを作ったとき、githubに公開したいけど、メインのコードは公開したくない時。 もしくは、プログラム作成中にgithubで公開されているコードを使いたいけ…

PostgreSQLのデータ移行(dumpとリストア)

参考) pg_dump データのdump pg_dump -h [hostname] -U [username] -c -t [tablename] -t [tablename] [dbname] > dump.sql -h: ホスト指定 -U:ユーザー名指定。未指定だとbashのログインユーザー名になるっぽい -c:テーブル削除文を追加 -a:データonly(-c…

DjangoのModelからデータを取り出す方法をまとめとく

Djangoのmodelからデータを取り出す方法をまとめとく 参考) クエリを作成する | Django documentation | Django ※こっちのほうがいい感じにまとまっているかも Django データベース操作 についてのまとめ - Qiita データ構造 from django.db import models …

Djangoのログ設定

デフォルトのLogging設定だと 実行時エラーが起こった時に、 Debug=Trueの場合: ブラウザ上にエラーメッセージとスタックトレースが表示される。 Debug=Falseの場合: ブラウザ上にはnginxのstatusコードのみ。 となっていて、本番環境でエラーが起こった場…

PyCharmでDocker側のpythonインタプリタを使ってデバッグ実行する設定

サンプル用コードを用意 git clone https://github.com/mixmaru/django_nginx_uwsgi_environment.git PyCharmで開く。 インタプリタの設定 Preferences->Project Interpreter画面の Project Interpreter項目でaddを押す 開いた画面の左側メニューから「Docke…