我在dockerizing
Rails应用程序的过程中将其部署到生产环境之前。
我能够创建一个2容器(db + app)系统,现在我尝试添加一个代理容器(使用Nginx)在应用程序前面运行以提供静态资产。
我创建了一个基本容器,从nginx:1.11-alpine
开始,配置如下
server {
listen *:80;
location / {
proxy_pass http://app:3000;
}
}
我现在能够将浏览器指向http://0.0.0.0
并获取根页,但是,静态资产(显然)没有提供,我也不知道如何继续。
我应该将静态资产从应用容器复制到代理容器吗?
我应该如何更新Nginx配置文件?
我的docker-compose.yml看起来像
version: '2'
volumes:
postgres-data:
driver: local
services:
...
app:
build: .
command: bin/rails server -b 0.0.0.0
ports:
- 3000:3000
links:
- postgres:db
depends_on:
- postgres
proxy:
image: nginx:1.11-alpine
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
command: nginx -g 'daemon off;'
ports:
- 80:80
- 443:443
links:
- app
depends_on:
- app
感谢。
答案 0 :(得分:0)
一个选项可能是通过共享卷装置将assets
目录从app容器共享到nginx容器,并配置nginx来提供这些文件。