質問編集履歴
3
情報追加
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
|
-
```
|
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
|
-
|
134
|
+
RUN bundle install
|
107
|
-
|
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
情報追加
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
情報の細く
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:
|
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:
|
91
|
+
"-instances=プロジェクト名:asia-northeast1:SQLのインスタンス=tcp:3306",
|
88
92
|
"-credential_file=./key.json"]
|
89
93
|
volumeMounts:
|
90
94
|
- name: cloudsql-instance-credentials
|