2017-02-05 10 views
1

だから私はpycharmプロフェッショナル版を手に入れました。私はWindows atmに悩まされていて、pycharmは素晴らしいです。それは、私がウィットWindowsにぶつかるすべての障害をバイパスするのに役立ちます。私が遭遇した最高のツール。ですから、私がライセンスをしたいのは、ライセンスを保持するサーバーを作ることです。pycharmライセンスサーバーを設定する

Dockerでこれを行いたい場合は、サーバをバックグラウンドで実行するdocker containerを作成してください。だから私が読んだチュートリアルでは、Arch linuxをLinuxサーバーとして使用してライセンスサーバーを実行することをお勧めします。それが私のしたことです。しかし、ベアボーンアーチを使用する代わりに、私はセキュリティアップグレードバージョンを使用しています。私はから始まるんだHERESにベースイメージ:

nning2/compile-linux-grsec 

だから、HERESに私のDockerfileこれまで:

FROM nning2/compile-linux-grsec 

ENV APP_ROOT /app 
ENV SERVER_DIR /opt/dvt-jb-lic-server 
ENV SERVER_BINARY dvt-jb_licsrv.linux.amd64 
ENV SERVER_BINARY_PATH "${SERVER_ROOT}/${SERVER_BINARY}" 
ENV COMPOSE_CONVERT_WINDOWS_PATHS 1 

RUN mkdir -p $APP_ROOT 
WORKDIR $APP_ROOT 
VOLUME [".:/app"] 

ADD "./${SERVER_BINARY}" $APP_ROOT 
RUN mkdir -p $SERVER_DIR 
RUN cp "${APP_ROOT}/${SERVER_BINARY}" $SERVER_BINARY_PATH 
RUN chmod +x $SERVER_BINARY_PATH 
RUN ls -l $SERVER_DIR 
RUN $SERVER_BINARY_PATH -mode install 

は、だから今私は、バックグラウンドでのライセンス・サーバを実行するためにdocker-compose.ymlファイルを作成する必要があります。相続人は私がこれまでに得たもの:

version: '2' 
    services: 
     shell: 
     build: . 
     command: /bin/bash service license-server 
     ports: 
      - "1337:1337" 

私はdocker-compose build .を実行すると、それは出力HERESに何を:それはバイナリをインストールしようとするまで

$ docker-compose build --force-rm --no-cache 
Building shell 
Step 1 : FROM nning2/compile-linux-grsec 
---> baf47265c7fc 
Step 2 : ENV APP_ROOT /app 
---> Running in 77d33bfe8848 
---> 67afb97c5b46 
Removing intermediate container 77d33bfe8848 
Step 3 : ENV SERVER_DIR /opt/dvt-jb-lic-server 
---> Running in c1b0615d8bec 
---> 1bc7ac4a8b78 
Removing intermediate container c1b0615d8bec 
Step 4 : ENV SERVER_BINARY dvt-jb_licsrv.linux.amd64 
---> Running in be4210954aaa 
---> ce48dd70acbb 
Removing intermediate container be4210954aaa 
Step 5 : ENV SERVER_BINARY_PATH "${SERVER_ROOT}/${SERVER_BINARY}" 
---> Running in 9e1a0aa39855 
---> a1c99aad2418 
Removing intermediate container 9e1a0aa39855 
Step 6 : ENV COMPOSE_CONVERT_WINDOWS_PATHS 1 
---> Running in 2a9337698969 
---> dae5eff0e382 
Removing intermediate container 2a9337698969 
Step 7 : RUN mkdir -p $APP_ROOT 
---> Running in ffe6894f4d15 
---> 2c9bfd607bc0 
Removing intermediate container ffe6894f4d15 
Step 8 : WORKDIR $APP_ROOT 
---> Running in 5404c27b138c 
---> a607eaed217e 
Removing intermediate container 5404c27b138c 
Step 9 : VOLUME .:/app 
---> Running in ad577ac00c9e 
---> 2fe4a66ba1ed 
Removing intermediate container ad577ac00c9e 
Step 10 : ADD "./${SERVER_BINARY}" $APP_ROOT 
---> 5ec55e991fba 
Removing intermediate container 55ae3d52227f 
Step 11 : RUN mkdir -p $SERVER_DIR 
---> Running in d76e590f011a 
---> b379ef02ab88 
Removing intermediate container d76e590f011a 
Step 12 : RUN cp "${APP_ROOT}/${SERVER_BINARY}" $SERVER_BINARY_PATH 
---> Running in 5e0d782f4549 
---> 802eeb561b62 
Removing intermediate container 5e0d782f4549 
Step 13 : RUN chmod +x $SERVER_BINARY_PATH 
---> Running in 64c79436824c 
---> c67396e5a721 
Removing intermediate container 64c79436824c 
Step 14 : RUN ls -l $SERVER_DIR 
---> Running in 0cda941ffc29 
total 0 
---> a94136235d9d 
Removing intermediate container 0cda941ffc29 
Step 15 : RUN $SERVER_BINARY_PATH -mode install 
---> Running in d9bfeb3ae871 
[91m2017/02/05 02:34:38 Installing license server as service. 
2017/02/05 02:34:38 open /etc/init.d/JetBrainsLicServerDVT: no such file or directory 
2017/02/05 02:34:38 Errors while installing the license server. Are you running this as root/Administrator? 
[0m ---> a08092892872 
Removing intermediate container d9bfeb3ae871 
Successfully built a08092892872 

だから、すべてがスムーズに行きます。何らかの理由で/etc/init.d/JetBrainsLicServerDVTファイルをインストールしていません。私はArchの初心者ですので、管理者権限の仕組みはまだ分かりません。バイナリを/ optディレクトリにコピーして、スーパーユーザ権限が必要な他のさまざまなことを行うことができるので、私はスーパーユーザ権限を持っているようです。

私はArchUbuntuに新規です。sudoを使用しますが、Archで動作するかどうかはわかりません。スーパーユーザー権限でライセンスサーバーのバイナリファイルをインストールする必要はありますか?

更新:私はコンテナにインタラクティブにログインして何が起こっているか確認しました。だから、このアーチのディストリビューションには/etc/init.dというディレクトリもないようです。したがって、このバイナリをインストールすることはできません。しかし、パラメータを指定せずにバイナリを実行すると、

[[email protected] app]# ./dvt-jb_licsrv.linux.amd64 
2017/02/05 03:18:50 Starting license server. 
2017/02/05 03:18:50 

           _____ . + 
     _____     \ | : ,` 
________\ |___________________ |____l____ _ 
/ .  |  |  /___ \_|____/___ 
\___________\_|\  /` // |  /y!r 
--------------``----\_____/ /\__________/ ------ 
____\   `~~~~----/ `----------` /____ 
\_____/(DVT JetBrains License Server v1.1)\____/ 

2017/02/05 03:18:50 [!] Server running at: http://127.0.0.1:1337 
2017/02/05 03:18:50 [!] Stop the license server with Ctrl+C 
2017/02/05 03:18:50 [?] For advanced usage refer to --help 

サーバが実行されます。サービスを簡単に開始して再起動できるように(つまりservice start license-serverなど)、サービスを正しくインストールできるようにしたいと思っていますが、正常に機能していれば申し訳ありません。アーチに実際に正しく取り付けられていないときにアーチを使うことをなぜ主張するのか分かりません。

だから私は、/etc/init.dディレクトリを作成しようとすることを決めた後、再度バイナリをインストールしてみました、それが働いた:

[[email protected] app]# mkdir /etc/init.d 
[[email protected] app]# ./dvt-jb_licsrv.linux.amd64 -mode install 
2017/02/05 03:41:30 Installing license server as service. 
2017/02/05 03:41:30 Successfully installed license server service. 

そして、その作業に完全に確認するために:

​​

答えて

1

編集:Iこれは解決策だと思ったが、そうではないと判明した。まず何らかの理由でdocker-compose.ymlに/etc/init.d/license_server startのコンテナを実行できません。 docker psで実行中のコンテナをチェックすると、実行中のコンテナはありません。私は、それ自体で/bin/bashとコンテナを実行することができ、かつkitematicによると、コンテナが実行されていると、それは、転送ポートを介してアクセスする必要があります: https://i.gyazo.com/1de96b014cfbc78f4c188ec33f336519.png

しかし、私はそのIPとポートにpingを実行する場合は、私が取得:

Ping要求でホスト192.168.99.100:1337が見つかりませんでした。 の名前を確認してもう一度お試しください。

私はVirtualBoxでDockerを使用していますが、転送されたポートはVMに表示されません。マニュアルを追加しようとしましたが、何も変わりませんでした。

問題は、/etc/init.dフォルダが存在しないことでした。

[[email protected] app]# mkdir /etc/init.d 
[[email protected] app]# ./dvt-jb_licsrv.linux.amd64 -mode install 
2017/02/05 03:41:30 Installing license server as service. 
2017/02/05 03:41:30 Successfully installed license server service. 

、今、私は簡単にサーバーを停止し、起動して再起動することができます:

​​

ので改善Dockerfileがあるので、それを修正するために、私はちょうど今、バイナリが正しくインストールされ、フォルダを作成しました:

FROM nning2/compile-linux-grsec 

ENV APP_ROOT /app 
ENV SERVER_DIR /opt/dvt-jb-lic-server 
ENV SERVER_BINARY dvt-jb_licsrv.linux.amd64 
ENV SERVER_BINARY_PATH "${SERVER_ROOT}/${SERVER_BINARY}" 
ENV COMPOSE_CONVERT_WINDOWS_PATHS 1 

RUN mkdir -p $APP_ROOT 
WORKDIR $APP_ROOT 
VOLUME [".:/app"] 

ADD "./${SERVER_BINARY}" $APP_ROOT 
RUN mkdir -p $SERVER_DIR 
RUN mv "${APP_ROOT}/${SERVER_BINARY}" $SERVER_BINARY_PATH 
RUN chmod +x $SERVER_BINARY_PATH 
RUN mkdir /etc/init.d 
RUN $SERVER_BINARY_PATH -mode install 
RUN mv "/etc/init.d/${SERVER_BINARY}" /etc/init.d/pycharm_license 

docker-compose.ymlファイル:

version: '2' 

services: 
    license_server: 
    environment: 
     ENV COMPOSE_CONVERT_WINDOWS_PATHS: 1 
    build: . 
    command: /bin/bash /etc/init.d/pycharm_license start 
    ports: 
     - "1337:1337" 

注記:/etc/init.dコマンド名を少し覚えやすいものに変更しました。

注2:私はDockerの新機能です。これをDockerのハブに追加したいのですが、少し時間をかけて作成しています。しかし、ユーザーが設定パラメータを入力できるように(つまり、別のユーザーには別のバイナリファイルが必要です)、私がまだ知らないことがたくさんあります。

これをDockerイメージに変換してハブに配置したい場合は、自由に行ってください。 gistをアップロードしました: https://gist.github.com/entheologist/42a6f6bb305897b16d1d1d6c4a9d7360

関連する問題