分页: 1 / 1

Dockerfile copy文件/文件夹,解压压缩包踩的两个坑

发表于 : 2024年 6月 21日 00:07
BobMaster
mattermost最近使用wasabi s3服务出了问题,自己魔改后,需要解决一下容器打包的问题。

https://github.com/hibobmaster/mattermo ... Dockerfile

1. 使用COPY指令时如果源路径是文件夹,那么拷贝的是将源目录下的文件(而不是文件夹)拷贝到目标路径下
对于源文件夹下还有子文件的情况,可以参考这样处理

代码: 全选

COPY --from=backend_builder /build/server/mattermost /mattermost/mattermost
COPY --from=backend_builder /build/server/bin /mattermost/bin
COPY --from=backend_builder /build/server/config /mattermost/config
COPY --from=backend_builder /build/server/fonts /mattermost/fonts
COPY --from=backend_builder /build/server/i18n /mattermost/i18n
COPY --from=backend_builder /build/server/templates /mattermost/templates
2. 压缩包解压
一开始我是直接使用tar -xf 解压,没有指定-C参数(将tar的工作路径却换过去),导致后面mv找不到指定路径,最后这么改解决了问题

代码: 全选

RUN mkdir -p /tmp/webapp \
    && tar -xf /tmp/mattermost-webapp.tar.gz -C /tmp/webapp \
    && rm /tmp/mattermost-webapp.tar.gz \
    && mv /tmp/webapp/client/* /mattermost/client/ \
    && chown -R mattermost:mattermost /mattermost