あるソフトウェアエンジニアの開発ブログ

ソフトウェアエンジニアリングを中心につらつらと書く

MacにHomebrewとGitとDockerとGitHubをセットアップ

Homebrewインストール Gitインストール Dockerインストール GitHubセットアップ まずは隠しファイル/フォルダを表示する。 defaults write com.apple.finder AppleShowAllFiles TRUE killall Finder 表示されているか確認。 Homebrewインストール 公式サイト…

EC2にDockerでElixir-Phoenixをデプロイする

EC2にDockerを使ってデータを表示するPhoenixアプリをデプロイする。 Phoenixのconfig設定 Dockerfile作成 EC2にログインしDockerイメージをプルする Dockerコンテナを起動させる Phoenixのconfig設定 Producrion用のconfigを書き換える。 ポート4000にロー…

AWS EC2 に nginx をインストールしリバースプロシキさせる

AWS

EC2でPhoenixアプリをグローバルに公開するための設定。 port80を公開する nginxのインストール nginx を起動する nginx 自動起動設定 nginx config 設定 port80を公開する EC2に適用しているセキュリティグループのインバウンドルールに下記を追加。 タイプ…

AWS EC2 にcronを設定し定期的にDockerコンテナを実行する

東京株式市場は15時大引けなので毎日18時に実行するよう設定する。 EC2にDockerをインストール Dockerイメージをプル cron を設定する EC2にDockerをインストール # パッケージ更新 sudo yum update -y # dockerインストール sudo yum install -y docker # d…

Elixir Mix.Configで環境毎にConfigを使い分ける

開発環境により使用するConfigを使い分ける。 流れとしては、Mix.Configにimport宣言を追加し環境ごとのConfigファイルを作成する。 コンパイル時、環境変数を設定しConfigを使い分ける。 Mix.Configの修正 Configファイル追加 環境変数を設定しコンパイルす…

DockerコンテナからDockerホストMySQLに接続する

スッとMySQLに繋げなかったのでちょっと調べた。 Dockerネットワークの種類 Dockerコンテナ起動時にオプションでネットワークを指定する MySQLユーザーのHostを書き換える アプリケーションからのMySQL接続ホストを127.0.0.1にする Dockerコンテナ起動 Docke…

Dockerfileを作成し、DockerHubで自動ビルドを行う

早速Dockerfileを作成していく。 公式 elixir Dockerイメージを使う DockerHub 自動ビルド DockerHub からイメージをプルし実行 Tips 公式 elixir Dockerイメージを使う https://hub.docker.com/_/elixir/ OSは、16.04.1-Ubuntu だった、サイズが大きいので…

Dockerをインストール(Ubuntu)しGitHubと連携

公式サイトを参考にインストールする。 パッケージインストール apt-getでDockerのインストールに必要なパッケージをインストール。 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common Docker公式GPG鍵追…

UbuntuでgitをセットアップしGitHubにプッシュする

Git

さくっとGitHubにプッシュする。 最新のGitを使えるようにする Git Config設定 SSH Key 作成 GitHubへプッシュ 最新のGitを使えるようにする Ubuntuで最新のGitを使用できるようにするために、 git ppa をリポジトリに追加する。 $ sudo add-apt-repository …

Elixir - Phoenixで株価を表示する(後編)

前回の続き。 今回は、Volume(日別出来高ランキング)ページを実装する。 VolumeController VolumeView VolumeTemplate VolumeController 引数に受けた文字列をDateにキャストする。 その値を使いDBからデータを取得する。 ポイントは where句ではピン演算子…

Elixir - Phoenixで株価を表示する(前編)

MySQLに入っている株価データを表示する。 ページ構成としてはHome(月別カレンダー)とVolume(日別出来高ランキング)の2つ。 今回はHomeだけ。 Routing HomeController HomeView HomeTemplete Routing ルーティングでのポイントは、HomeControllerへのルート…

Elixir - Phoenixでページを作成する

今回はページを作成していく。 Routing Action View Templateを理解する。 Routing Action View Template Routing web/router.exにHomeControllerを追加する。 defmodule StockScraping.Router do use StockScraping.Web, :router pipeline :browser do plug…

Elixir - Phoenixのセットアップ

このブログで書いたように、 Elixir習得のために作り始めた株価スクレイピングアプリは当初データ収集のみの想定だった。 でも思いの外気合のみで作れてしまい、まるで言語を習得できていないのでWebアプリにしようと思う。 定期的にデータをスクレイピング…

MySQL(Local)をエクスポートしMySQL(AWS)にインポートする

環境が整ったので、LocalのあるMySQLのデータをAWSに移行する。 MySQL(Local)エクスポート エクスポートファイルをEC2に転送 MySQL(AWS)インポート MySQL(Local)エクスポート mysqldumpコマンドを実行すると実行ディレクトリにエクスポートファイルが…

AWSの無料枠内でEC2とMySQLを起動する

AWS

昨日飲み過ぎ+寝不足で今日はElixir触れなかった、こんちくしょう。 ということでAWSの設定は終わったのでそれを書く。 IAMの設定 IAM とは - AWS Identity and Access Management Linuxでrootユーザー使いながら作業しないし、Windowsでadministratorで作業…

ElixirでMySQLの株価をUpdate

前回の続き。 今度はMySQLのデータを更新してみる。 基本文法でちょっと時間かかった、やはりまずは基礎を勉強してからやるべきだったかも…。 文字列をintgerやfloatやdateに変換する To integer To float To date MySQLのデータを更新する 更新対象のデータ…

ElixirでMySQLに株価をInsert

前回の続き。 今回はO/RマッパーであるEctoを使い、MySQLにデータを保存する。 Ectoをセットアップする リポジトリを作成する config.exsを設定する Supervisorの設定 Schemaを作成する MySQLからテストデータをSelectしてみる MySQLにInsertしてみる Ectoを…

Elixirで株価をスクレイピングする

開発ブログに再挑戦。 Elixir習得のため、株価スクレイピングアプリをElixirで書いてAWSで運用するまでを一旦の目標にする。 開発環境を構築する Elixirをインストールする Mixを使いプロジェクトを作成する ライブラリの依存関係を解決する ロジックを実装…