外から家のSynologyのDockerにアクセスする

アクセス経路

大体下記のようにアクセスする。各ノードでポート転送を設定する必要がある。



ルーターA(aterm bl902hw)

ルーターB(R8500)

Synology

Dockerコンテナ

aterm bl902hwのポート転送

http://192.168.0.1/にアクセス。ユーザー名はadm。
管理画面にアクセスし、サイドメニューからポートマッピング設定を選び、追加する。
Lan側ホストは、R8500のIP。
ポート番号は、転送したいポート番号。
優先度は、適当でOK。



R8500のポート転送

管理画面にアクセスし、高度タブから、ポート転送を選択し、追加する。
「外部のポート開始、終了」と「内部のポート開始、終了」を範囲指定する。
もし3000だけなら、全部3000にすればいい。
サーバーIPアドレスはSynologyのIPアドレス。

synologyのfirewallで許可する

コントロールパネル→セキュリティ→ファイアウォールより設定追加。
ポート3000を許可する。

Dockerコンテナでポート転送

Synologyでコンテナを起動する際にポート転送設定をする。
下記は設定して起動中コンテナの概要表示したもの。

SynologのDDNSを設定

固定IP買ってないとGlobal IPが定期的に変更されるので、DDNSを使う。無料DDNSはいくつかあるが、ここではSynologyのDDNSを使う。

外からアクセス

DDNSで設定したURLで外からアクセスできるようになるはず。

Read More

SynologyのDockerに自分で作ったDocker Imageを配備する

自分で作ったDocker ImageをどうやってSynologyのDockerに配備するか?一旦Docker Hubにアップロードし、SynologyのDockerからDLする。
SynologyのDockerアプリを立ち上げて、イメージタブ→追加→→URLから追加をクリック。

続いて、Dcoker HubのレポジトリURLを入力、自分のユーザー名、パスワードを入力で追加をクリック。
これで自分で作ったDocker ImageをSynologyのDockerに配備完了。

ちなみにtagがあった場合、上記追加をクリック後に小さなダイアログが出てきて、どのタグをDLするか選ぶことができる。

追加した後は、Imageを選択して、コンテナ起動すればOK。起動時にはもろもろプロパティを追加することができる。GUIだけど、CUIのほうが楽なんじゃないかと思ったりもする。
Read More

Node開発用の軽量なDocker Imageを作る

Alpine Linuxベースで作ると軽いらしい。Docker HubからNodeのイメージDLすると1Gぐらいあって重い。
手順は下記の通り。
  1. Docker HubからAlpineのImageをpullする。
  2. DLしたImageからコンテナを起動し、Nodeをインストールする。
  3. コンテナをstopする。
  4. stopしたコンテナからイメージを生成する。
以上。結果出来あったImageは大体500Mぐらいなので半分くらいになる。
Read More

AngularでLoopBack 4でCRUD処理

環境
[root@localhost ~]# npm -v
6.9.0
[root@localhost ~]# node -v
v10.16.3
下記エラーがでる。
> mypj@1.0.0 start /root/mypj
> npm run build && node -r source-map-support/register .
> mypj@1.0.0 build /root/mypj
> tsc
src/__tests__/acceptance/home-page.acceptance.ts:5:1 - error TS2582: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
5 describe('HomePage', () => {
  ~~~~~~~~
src/__tests__/acceptance/home-page.acceptance.ts:9:3 - error TS2304: Cannot find name 'before'.
9   before('setupApplication', async () => {
    ~~~~~~
src/__tests__/acceptance/home-page.acceptance.ts:13:3 - error TS2304: Cannot find name 'after'.
13   after(async () => {
     ~~~~~
src/__tests__/acceptance/home-page.acceptance.ts:17:3 - error TS2582: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
17   it('exposes a default home page', async () => {
     ~~
src/__tests__/acceptance/home-page.acceptance.ts:24:3 - error TS2582: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
24   it('exposes self-hosted explorer', async () => {
     ~~
src/__tests__/acceptance/ping.controller.acceptance.ts:5:1 - error TS2582: Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
5 describe('PingController', () => {
  ~~~~~~~~
src/__tests__/acceptance/ping.controller.acceptance.ts:9:3 - error TS2304: Cannot find name 'before'.
9   before('setupApplication', async () => {
    ~~~~~~
src/__tests__/acceptance/ping.controller.acceptance.ts:13:3 - error TS2304: Cannot find name 'after'.
13   after(async () => {
     ~~~~~
src/__tests__/acceptance/ping.controller.acceptance.ts:17:3 - error TS2582: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.
17   it('invokes GET /ping', async () => {
     ~~
Found 9 errors.
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! mypj@1.0.0 build: `tsc`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the mypj@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-09-21T08_53_22_311Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! mypj@1.0.0 start: `npm run build && node -r source-map-support/register .`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the mypj@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-09-21T08_53_22_334Z-debug.log
グローバルじゃなくてローカルに下記2つインストールで解決する。
npm i @types/mocha
npm i @types/jest
Read More
Powered by Blogger.