dockerコンテナーを使用してフロントエンドプロジェクトをnginxにデプロイし、クロスドメインの問題を解決する
準備
1.フロントエンドプロジェクトがパッケージ化され、/ homeに解凍され、/ home / distに格納されます
。2。バックエンドプロジェクトが実行されます
ホスト操作
新しいデータボリュームの名前はnginxです
docker volume create nginx
Dockerボリュームls
Dockerボリューム検査nginx
nginxと呼ばれるコンテナーを初期化し、-dがバックグラウンドで実行され、-pポートマッピング、Dockerホストのポート8089がコンテナーのポート80にマップされる
-vパラメーターは、distの下の静的ファイルをnginxのhtmlフォルダーにマップし、構成ファイル対応するデフォルトの構成ファイルは、データボリュームnginx
にバインドされたホストフォルダー(/ var / lib / docker / volumes / nginx / _data)をnginxコンテナーの/ etc / nginxフォルダーにマップします
docker run --name nginx -d -p 8089:80 -v /home/dist:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v nginx:/etc/nginx nginx
docker ps実行中のコンテナー
ホストがマウントされているフォルダに移動します
cd / var / lib / docker / volumes / nginx
cd _date /
静的フォルダーをマウントされたフォルダー
cp / home / distにコピーします。
設定ファイルが保存されているフォルダに移動し、設定ファイルを編集します
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
server{
listen 80;
server_name ip;
location / {
proxy_pass http://ip:8081/api/; #ip为你的后端ip地址
}
location ~ .*\.(js|css|ico|png|jpg|eot|svg|ttf|woff|html)$ {
root /etc/nginx/dist;
expires 30d;
}
}
}
nginxコンテナのフォルダを入力してください
/ data / nginx / conf
1、docker exec -it nginx(コンテナー名)/ bin / bash
2、cd / etc / nginx
3. lsは、コピーしたホストフォルダー内の静的ファイルを表示できます
nginxコンテナを再起動して構成を更新する
docker ps
docker restart XXX