「求助」DockerFile 丢失自定义 css 文件

326 天前
 owltacklejaguar

是这样的,用 python 写了一个小工具,本地开发时使用 css 外网 url ,项目部署在内网且不出网,无法访问 css 的外网 url

本地 tree

.
├── Dockerfile
├── app.py
├── docker-compose.yml
├── env.env
├── requirements.txt
├── resource
│   ├── bootstrap.min.css
│   ├── bootstrap.min.js
│   └── jquery-3.5.1.min.js
└── templates
    ├── index.html
    └── login.html
    

resource 目录是我保存的离线 css 和 js 文件

Dockerfile 内容如下

FROM python:3.8
MAINTAINER -
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

请问我如何修改 Dokcerfile 把 resource 目录中的资源文件打包进去呢?

1517 次点击
所在节点    程序员
14 条回复
aru
326 天前
已经打包进去了
无法访问 css 的外网 url 那是另外一个问题,和你的 dockerfile 无关
aru
326 天前
纯内网访问需要将相关的资源都下载回来,还有修改引用的 url ,将它们都改为内网相对路径
liyunyang
326 天前
1 、RUN pip install --no-cache-dir -r requirements.txt 不是需要外网吗?你确定你在内网环境能下载?

2 、MAINTAINER - 的意义是啥。。是你去掉了是吗

3 、COPY . . 已经把所有的文件和文件夹复制到 /app 下面了,你是要怎么打包进去?
pota
326 天前
COPY . . 不是已经放进去了吗。如楼上所说。你外部可以访问到容器内部的资源吗?
aru
326 天前
我大概明白 OP 的意思了
应该是 index.html 和 login 的 html 里面原来引用的是外网的 css 文件,就是 resource 内容里面 3 个文件
现在他想不依赖外网,直接这个容器里面就提供了。
假设 OP 用的是 flask ,配置一下 static_url_path 、static_folder 就可以了。
https://www.jianshu.com/p/5722fef5fa96
zjsxwc
326 天前
COPY . . 已经放进去了
没有 nginx 么,直接 python 把静态资源服务也一起提供好了。
owltacklejaguar
326 天前
@aru #2 路径修改为../、/、resource 都测试过,访问不到
owltacklejaguar
326 天前
@liyunyang #3 1.在外网打包的镜像,导入到内网

2.我去掉了

3.页面显示丢失资源文件,怀疑是没有打包进去
owltacklejaguar
326 天前
@pota #4 不可以
aru
326 天前
@owltacklejaguar
你的代码写的有问题呗,将相关代码发出来吧
用哪个框架的
zgray
326 天前
docker 无法解决依赖路径的问题,估计是你的 index.html 中引用的路径写了某个固定的地址,现在想改为本地资源,那么应该看看你 index.html 中的 link 或者 script 的怎么写引用路径的,可能还要排查下你用的框架对静态资源的路径要求。

这个和 docker 打包无关,也和 docker 在哪里打包无关,docker 只是一个打包环境快速还原环境的工具。
yagamil
326 天前
看命名应该是 flask
owltacklejaguar
326 天前
@aru #5 已解决,感谢~
hui9000
326 天前
别怀疑文件打没打包进去,进镜像看呀
就算本地引用也得有这个文件,找一下
julyclyde
325 天前
所以,这原来是一个“以为 docker 万能”的问题?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/950177

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX