質問するログイン新規登録

質問編集履歴

3

情報追加

2019/07/02 16:19

投稿

joru
joru

スコア45

title CHANGED
File without changes
body CHANGED
@@ -43,6 +43,13 @@
43
43
  textPayload: "2019/07/02 14:18:29 invalid json file "./key.json": open ./key.json: no such file or directory
44
44
  ```
45
45
 
46
+ ```bash
47
+ $ kubectl get pods
48
+ NAME READY STATUS RESTARTS AGE
49
+ rails-api-798fd446db-c6jwc 1/2 CrashLoopBackOff 1 5s
50
+ rails-api-798fd446db-d8g8k 1/2 CrashLoopBackOff 1 5s
51
+ ```
52
+
46
53
  ### 該当のソースコード
47
54
 
48
55
  ```ruby
@@ -102,9 +109,28 @@
102
109
  secretName: cloudsql-instance-credentials
103
110
  ```
104
111
 
105
- ```bash
112
+ ```ruby
113
+ #Dockerfile
114
+ FROM ruby:2.6.2
115
+
116
+
117
+ # 必要なパッケージのインストール(基本的に必要になってくるものだと思うので削らないこと)
118
+ RUN apt-get update -qq && \
119
+ apt-get install -y build-essential \
120
+ libpq-dev \
121
+ nodejs
122
+
123
+ # 作業ディレクトリの作成、設定
124
+ RUN mkdir /rails_api
125
+ ##作業ディレクトリ名をAPP_ROOTに割り当てて、以下$APP_ROOTで参照
126
+ ENV APP_ROOT /rails_api
127
+ WORKDIR $APP_ROOT
128
+
129
+ # ホスト側(ローカル)のGemfileを追加する(ローカルのGemfileは【3】で作成)
130
+ ADD ./Gemfile $APP_ROOT/Gemfile
131
+ ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock
132
+
133
+ # Gemfileのbundle install
106
- $ kubectl get pods
134
+ RUN bundle install
107
- NAME READY STATUS RESTARTS AGE
135
+ ADD . $APP_ROOT
108
- rails-api-798fd446db-c6jwc 1/2 CrashLoopBackOff 1 5s
109
- rails-api-798fd446db-d8g8k 1/2 CrashLoopBackOff 1 5s
110
136
  ```

2

情報追加

2019/07/02 16:19

投稿

joru
joru

スコア45

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  自作railsアプリケーション(DBはMysql)をDocker環境で動くように開発し、GKE(google kubernetes engine)にデプロイしたい
4
4
 
5
+ [こちらのサイト](https://qiita.com/ryu-yama/items/dc640c35a56e42ebdba8)を参考にしています
6
+
5
7
  前提
6
8
  ・アプリケーションはローカル(開発環境)だとdocker-compose upで正常に起動する状態
7
9
  ・localのワーキングディレクトリにはkey.jsonがある

1

情報の細く

2019/07/02 15:41

投稿

joru
joru

スコア45

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,10 @@
8
8
  ・GCPのIAMと管理「サービス アカウントの詳細」にキーは設定されていてkey.jsonのものと同じ(メールアドレスも一致)
9
9
  ・cloudsql-db-credentialsとcloudsql-instance-credentialsはGCP側に設定されている
10
10
 
11
+ GKE構成
12
+ ・nodeは2つ、それぞれに同じ2つpodを入れている
13
+ ・マニュフェストファイルはひとつ(deployment.yml)
14
+
11
15
  ```json
12
16
  #key.json
13
17
  {
@@ -67,7 +71,7 @@
67
71
  name: cloudsql-db-credentials
68
72
  key: password
69
73
  - name: DB_NAME
70
- value: fukurikun-mysql
74
+ value: SQLのインスタンス
71
75
  - name: DB_HOST
72
76
  value: 127.0.0.1
73
77
  - name: RAILS_ENV
@@ -84,7 +88,7 @@
84
88
  - image: b.gcr.io/cloudsql-docker/gce-proxy:1.11
85
89
  name: cloudsql-proxy
86
90
  command: ["/cloud_sql_proxy",
87
- "-instances=プロジェクト名:asia-northeast1:DBインスタンス=tcp:3306",
91
+ "-instances=プロジェクト名:asia-northeast1:SQLのインスタンス=tcp:3306",
88
92
  "-credential_file=./key.json"]
89
93
  volumeMounts:
90
94
  - name: cloudsql-instance-credentials