准备做前后端分离,前端,后端的docker-compose 都弄好了
后端 https://blog.csdn.net/tang05709/article/details/86761254
前端https://blog.csdn.net/tang05709/article/details/88394634
但他们没有通信,所以使用127.0.0.1去请求数据会报错
我使用的是networks 把2个docker-compose拉到一个网络组里
首先建立网络组
docker network create app_net
然后把每一个容器都加上
networks:
- custom_net
在然后每一个docker-compose.yml都加上
networks:
custom_net:
external:
name: app_net
version: '3'
services:
db:
image: mysql:5.7
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=1
ports:
- "3316:3306"
networks:
- custom_net
redis:
image: redis:5.0.3
ports:
- "6390:6379"
command: redis-server
networks:
- custom_net
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/jizan
ports:
- "3000:3000"
depends_on:
- db
- redis
networks:
- custom_net
networks:
custom_net:
external:
name: app_net
version: '3'
services:
client_web:
build: .
command: bash -c "DEBUG=jizan_client:* npm start"
volumes:
- .:/jizan_client
ports:
- "8080:8080"
networks:
- custom_net
networks:
custom_net:
external:
name: app_net
数据请求
const express = require('express')
const router = express.Router()
const http = require('http')
/* GET home page. */
router.get('/', function(req, res, next) {
let body = ''
http.get(url='http://web:3000/setdata', (response) => {
response.on('data', (data) => {
body += data
}).on('end', () => {
res_data = JSON.parse(body)
console.log(res_data.data)
}).on('error', (error) => {
console.log(error)
})
})
res.render('index', { title: 'Express' })
})
module.exports = router