0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

インターネットにつながらない環境で急にrailsのアプリを作りたくなったら

Last updated at Posted at 2020-05-01

記事の概要

インターネットにつながらない職場のサーバで、railsの環境を作った際のメモです。

効能

この記事は以下の症状に該当する人に効果があるかもしれません。(使えなくてもスミマセン)
・ふとした拍子に職場でrailsのアプリを作りたくなることがある。
・急にrailsを実験したくなる。
・急にrubyが書きたくなる。
・しかし、gemファイルを一個一個ダウンロードして環境構築なんてやってらんねーからやーめた。

前提

職場のPCからはインターネットがみられる。
職場のPCから、サーバへのSSH接続可能。
家のPCから、職場のPCへのデータ持ち込み手段がある。(メールとか、自前のホームページとか。)

手順

  1. 家で一回環境を作る。

    1. アプリケーションディレクトリを生成

      shell
      # アプリケーションを作って。。
      rails new appname
      
      # => これでbundle installまでしてくれますね。
      
      # 生成されたディレクトリに移動しておくと、後々楽です。
      cd appname
      
      
    2. database.ymlを編集
      使うデータベースに合わせて編集します。
      ここでは、とりあえずのdevelop環境&sqliteでやりますので、デフォルトのままです。

      database.yml
      default: &default
      adapter: sqlite3
      pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
      timeout: 5000
      
      development:
       <<: *default
        database: db/development.sqlite3
      
    3. 適当にscaffold
      とりあえず、sqlite用のgemがインストールされてなくてやり直しって事があったので、モデルの生成&ちょっとした動作確認まで進めちゃいます。

      shell
      # アプリケーションディレクトリで以下のコマンドを実行。
      bundle exec rails g scaffold ExampleTest title:string description:string
      
      # マイグレーションを実行
      bundle exec rails db:migrate
      
      # 動作確認用にサーバを起動(ローカルでしか起動しないので、バインディングとポート番号は適当です。)
      bundle exec rails s -b 0.0.0.0 -p 30001
      
      # 無事起動したら、以下のアドレスにアクセスしてみます。
      # http://localhost:30001/example_tests
      # アクセスできたら、Ctrl + Cでサーバを止めます。
      
      
    4. まとめて固めて持っていく。
      bundlerには必要なgemファイルを/vendor/cacheにまとめてくれる機能(パッケージ化)があります。
      こいつを使って、他の環境に持ち運べるようにします。

      shell
        # コマンドを一つ叩くだけの簡単なお仕事です。
        bundle pack
      
        # そうしますと、./vendor/cacheの中にgemファイルがたくさん入ってきます。
        ls -1 ./vendor/cache
      
        # 結果例:
        # actioncable-6.0.2.2.gem
        # actionmailbox-6.0.2.2.gem
        # actionmailbox-6.0.2.2.gem
        # :(延々と続く)
      
        # では、これらを固めてしまいます。
        # まずは、アプリケーションディレクトリの一個上の階層に移動して。。
        cd ../
      
        # tarで固める。(appnameはrails newの時に指定したアプリケーション名ですね。)
        tar cvzf appname.tgz appname
      
      
    5. 出来上がったtarファイルをなんとかして職場PCに持ち込む
      私は、自前のS3を使いました。。

  2. 作ったrailsアプリをサーバで展開。

    1. SSHを使ってtarファイルをサーバに置きます。

    2. 置いたら、以下の手順で、展開&bundle install

      shell
      # まずはtarファイルを展開(tgzにしてましたが。。)
      tar xvzf appname.tgz
      
      # 出来上がったディレクトリに移動
      cd appname
      
      # 以下のコマンドで必要なgemをインストールできます。
      # --localオプションにより、vendor/cache配下のgemを使ってくれるという寸法です。
      bundle install --local
      

      => これで完了です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?