質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

455閲覧

1台のサーバーで2つの Gaurun を動かすことは可能?

sunskysoft

総合スコア17

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/03/07 16:27

前提・実現したいこと

とある理由から、あるアプリの後継にとして新アプリを作成し、旧から新へと移行していこうとしています。プッシュに関してサーバーサイドの処理はほとんど変わらないため、1つのサーバーから新旧2つのアプリにPush を投げたいと考えてます。

しかし、Push Provider として利用させていただいている Gaurun は、Android と iOS を1つずつしか登録できないため、2つのアプリに対応することができない状況です。
システムを大きく変えずに2つのアプリに対応するには、Gaurun を2プロセス稼働させれば可能ではないかと考えました。

試したこと

そこで、単純に2つのプロセスを動かすことで解決できないかと考えました。
ビルドした Gaurun のフォルダをコピーし Gaurun2 を作成し、配下にある Gaurun.toml にそれぞれ異なるポートを設定。

gaurun/bin/gaurun -c gaurun/conf/gaurun.toml &
gaurun2/bin/gaurun -c gaurun2/conf/gaurun.toml &

のように2つのプロセスを起動してみました。

知りたいこと

とりあえず、上記の内容でポートの異なる2つの Gaurun にリクエストを投げてみました。
動いてはいるようなのですが、本当に問題がないかがわかりません。

問題ないよ、もしくはここが問題だよ、という点を教えていただけないでしょうか?

その他参考にした資料

Vagrant環境に複数のDockerのコンテナを構築して複数のプッシュ通知(gauran)する
というページを参照しましたが、正直 Docker の知識がなく(というかサーバーサイドの知識が足りないのですが)いまいち理解できていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

可能です。

一般的な対応は利用するポート、利用するファイル(PIDファイル、設定ファイル、ログディレクトリ、ファイル、設定ファイル、SOCKファイル等)をわければいけます。

アプリケーションによってはパスが埋め込みになっている場合もありますので、そのような場合はDockerを使うことで問題が解決できると思います。

docker-gaurun

こんな感じで起動かな?

docker run --name gaurun -d \ -p 1056:1056 \ -v `pwd`/gaurun1.toml:/gaurun.toml \ -v `pwd`/cert1.pem:/cert.pem \ -v `pwd`/key1.pem:/key.pem \ xcezx/gaurun \ gaurun -c /gaurun.toml docker run --name gaurun -d \ -p 11056:1056 \ -v `pwd`/gaurun2.toml:/gaurun.toml \ -v `pwd`/cert2.pem:/cert.pem \ -v `pwd`/key2.pem:/key.pem \ xcezx/gaurun \ gaurun -c /gaurun.toml

投稿2019/03/08 00:44

編集2019/03/08 01:54
moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sunskysoft

2019/03/08 01:55 編集

回答ありがとうございます。 Gaurun に Push 要求を出すアプリ部分はホスト上にあり、Gaurun のみを2つのコンテナで実行した場合、アプリはポートを変えて Gaurun を呼び出すことを考えています。 その場合、以下のようにするのでしょうか?(ポートを 1059 に変更) docker run --name gaurun -d \ -p 1059:1059 \ -v `pwd`/gaurun2.toml:/gaurun.toml \ -v `pwd`/cert2.pem:/cert.pem \ -v `pwd`/key2.pem:/key.pem \ xcezx/gaurun \ gaurun -c /gaurun.toml ちなみに、アプリ部分は nginx と Laravel , php で作成しています。
moonphase

2019/03/08 01:55

-pオプションの左側の数字がHost側のポートとなります。 コンテナ側のポートは変更しなくて構いません。 回答を修正しました。 -p 11056:1056 これは、Host側のポート11056をコンテナ側の1056へBINDする指定となります。
sunskysoft

2019/03/08 02:01

gaurun2.toml で指定されるポートはどちらのコンテナも 1056 のままで、ホスト側ポートを変える。 ホスト上のアプリからはそれぞれのホスト側ポートを指定する。 という認識で正しいでしょうか? 昨日、以下のようにDocker を起動して、アプリからそれぞれのポートに投げてみたのですがうまく動きませんでした。コンテナに対してネットワーク設定などが必要でしょうか? sudo docker run -d --name gaurun1 -p 1056:1056 -v /home/user/go/src/github.com/mercari/gaurun:/root/src -i -t ubuntu /root/src/bin/gaurun -c /root/src/conf/gaurun.toml& sudo docker run -d --name gaurun2 -p 1059:1059 -v /home/user/go/src/github.com/mercari/gaurun2:/root/src -i -t ubuntu /root/src/bin/gaurun -c /root/src/conf/gaurun.toml&
moonphase

2019/03/08 02:09

> gaurun2.toml で指定されるポートはどちらのコンテナも 1056 のままで、ホスト側ポートを変える。 ホスト上のアプリからはそれぞれのホスト側ポートを指定する。 という認識で正しいでしょうか? はい、認識通りです。 コンテナ側のポートを変えない設定にした場合、2番目の-pパラメータは 1059:1056です。
sunskysoft

2019/03/08 03:38

昨日動いていなかったのは、iOSのpem のパス設定の問題でした。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問