docker部署项目成功后,template/admin登录正常,访问后台接口都提示跨域问题
你的接口地址怎么是localhost?
nginx原先的容器端口8011我改成80了 按下面的修改现在可以正常访问了
docker-compose/docker-compose.yml 需要添加挂载template 不然生成的时候会crud模板的时候会报错
添加这一行 - ../template:/var/template
version: "3.3"
services:
# mysql 容器
mysql:
container_name: crmeb_mysql #指定容器名
# image: daocloud.io/library/mysql:5.7.5-m15 #M1芯片可以采用这个镜像
image: mysql:5.7 #一般电脑可以用这个镜像
ports:
- 3336:3306
# 环境变量
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_USER: 'crmeb'
MYSQL_PASS: '123456'
MYSQL_DATABASE: 'crmeb'
privileged: true
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--default-authentication-plugin=mysql_native_password
--sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
working_dir: /var/lib/mysql
volumes:
- ./mysql/my.cnf:/etc/mysql/my.cnf
- ./mysql/data:/var/lib/mysql #挂载数据目录到本地
- ./mysql/log:/var/log/mysql
networks:
app_net:
# 固定子网ip,网段必须在子网络192.168.*.*
ipv4_address: 192.168.10.11
# redis 容器
redis:
container_name: crmeb_redis
image: 'redis:alpine'
# image: daocloud.io/library/redis:6.0.5-alpine
# image: redis:5.0
ports:
- "6379:6379"
command: redis-server /usr/local/etc/redis/redis.conf
volumes:
# - ./redis/data:/data #挂载数据目录到本地
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
networks:
app_net:
ipv4_address: 192.168.10.10
# php 容器
phpfpm:
container_name: crmeb_php #指定容器名
# image: phpfpm-image #指定镜像名
image: crmeb_php #指定镜像名
build:
context: ./php #dockerfile文件路径
dockerfile: Dockerfile #制定dockerfile文件名称
restart: always
environment:
TZ: Asia/Shanghai
ports:
- 9000:9000
- 20002:20002
- 20003:20003
tmpfs: /var/temp #上传临时文件夹
working_dir: /var/www
volumes:
- ../crmeb:/var/www #程序运行目录
- ../crmeb/runtime:/var/www/temp #程序缓存目录
- ../template:/var/template
- ./php/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini
networks:
app_net:
ipv4_address: 192.168.10.90
# command: /bin/bash -c "php -v"
# nginx 容器
nginx:
container_name: crmeb_nginx
image: 'nginx:alpine'
# image: daocloud.io/library/nginx:1.19.1-alpine
restart: always
ports:
- 80:80
# - 443:443
# 依赖关系 先跑php
depends_on:
- phpfpm
environment:
TZ: Asia/Shanghai
working_dir: /var/www
volumes_from:
- phpfpm #继承phpfpm挂载目录
volumes:
- ./nginx/vhost.conf:/etc/nginx/conf.d/default.conf
- ./nginx/log:/etc/nginx/log
networks:
app_net:
ipv4_address: 192.168.10.80
networks: #网络配置
app_net: #网络名称
driver: bridge
ipam: #网络配置
driver: default
config:
- subnet: 192.168.10.0/24 #IP区间
root@DESKTOP-7AMVND9:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
b3f013b9928d bridge bridge local
d74cb17155d0 docker-compose_app_net bridge local
515eefe3efe5 host host local
a1502cd34e33 none null local
template/admin/docker-compose.yml 需要添加网络和前面后台docker-compose/docker-compose.yml里头的ip同一网段
version: '5'
services:
node-web:
container_name: CRMEBv5
image: crmeb
build:
context: .
dockerfile: Dockerfile
ports:
- "1617:1617"
volumes:
- .:/app
- /app/node_modules
working_dir: /app
# 开发调试
command: ["npm","run","dev"]
# 正式版打包
# command: ["npm","run","build"]
networks:
app_net:
ipv4_address: 192.168.10.100
networks: #网络配置
app_net: #网络名称
external:
name: docker-compose_app_net
template/admin/vue.config.js 配置代理
devServer: {
open:true,
port: 1617, // 端口
proxy: {
// 单个代理配置示例
'/': {
target: `http://192.168.10.80`, // 目标后端服务器地址
changeOrigin: true, // 是否需要改变原始主机头信息为target值
logLevel: 'debug', // 可选,控制台日志级别,比如 debug、info、warn、error
// PathRewrite:{
// '^/adminapi':'/adminapi'
// }
},
},
docker-compose/nginx/vhost.conf 修改server_name为localhost
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/public;
location / {
# try_files $uri /index.php$is_args$args;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
location /notice {
proxy_pass http://192.168.10.90:20002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /msg {
proxy_pass http://192.168.10.90:20003/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass phpfpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论