一般先端項目からdocker容器化
一般先端項目からdocker容器化
会社のプロジェクトはランチャーに配置されたプロジェクトで、現地で実行したいです。
前提:プロジェクトはnodeコンパイルを使っています。現地でコンパイルが必要でない場合は、直接第二ステップ を実行できます。コードはすでに開発済みです。
ディレクトリ構造
ここでdockerのインストール手順は省略します。
フロントエンドコードをコンパイルする ダウンロードnodeミラー コンパイルコード
前後の端が完全に分離されているので、ドメインをまたぐ問題を考慮して、直接にnginxを使って逆エージェントを行います。前後が同じサーバにいれば、このような面倒なdefault.com nfは必要ありません。
前提:プロジェクトは、mavenを使って を包装します。は、jar命令で直接に実行することができます。
会社のプロジェクトはランチャーに配置されたプロジェクトで、現地で実行したいです。
前提:
ディレクトリ構造
keith@Keith:~/web/java/docker/cms-frontend$ tree -L 2
.
├── Dockerfile //
├── README.md
├── build
│ ├── build.js
│ ├── check-versions.js
│ ├── config.js
│ ├── dev-client.js
│ ├── dev-server.js
│ ├── env.js
│ ├── utils.js
│ ├── vue-loader.conf.js
│ ├── webpack.base.conf.js
│ ├── webpack.dev.conf.js
│ └── webpack.prod.conf.js
├── conf
├── config
│ ├── dev.env.js
│ ├── index.js
│ └── prod.env.js
├── default.conf //
├── dist //
│ ├── index.html
│ └── static
├── docker-compose.yml //
├── index.html
├── project.yml
ステップここでdockerのインストール手順は省略します。
フロントエンドコードをコンパイルする
docker pull node
cd /usr/share/src/
docker run -t -i --name mynode -v $PWD:/www node
docker ps
docker exec -ti `docker ps | grep mynode | awk '{print $1}'` bash
yarn && npm run build
exit
( dist )
docker ps -a // pc ( )
docker kill mynode //
docker rm mynode //
起動容器
docker build -f Dockerfile -t registry.***.com/ued/frontend:dev-0.0.2 . // docker-compose
docker-compose -f docker-compose.yml up
プロジェクトに追加するファイルが必要です。前後の端が完全に分離されているので、ドメインをまたぐ問題を考慮して、直接にnginxを使って逆エージェントを行います。前後が同じサーバにいれば、このような面倒なdefault.com nfは必要ありません。
server {
listen 80;
server_name -;
#access_log /var/log/nginx/host.access.log main;
set $gateway "172.22.31.222:8090";
location ~ ^/api {
resolver 8.8.8.8;
#
if ($host ~ "test") {
set $gateway "172.22.**.** ";
}
if ($host ~ "demo") {
set $gateway "172.16.*.* ";
}
if ($host ~ "online") {
set $gateway "";
}
proxy_http_version 1.1;
proxy_set_header Connection "keep-alive";
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_next_upstream http_502 http_503 http_504 http_500 error timeout invalid_header;
proxy_pass http://${gateway};
}
location / {
alias /usr/share/nginx/html/dist/;
index index.html;
try_files $uri $uri/ /index.html;
}
}
docker-componese.ymlversion: '2'
services:
frontend:
mem_limit: 1073741824
image: registry.***.com/ued/frontend:dev-0.0.2 //
environment:
DEBUG_MODE: '1' // , env
ports:
- 8124:80/tcp // , 8124 80
DocerfileFROM nginx
ADD ./ /usr/share/nginx/html
ADD default.conf /etc/nginx/conf.d/default.conf
普通Java-mavenプロジェクトdockerの容器化前提: