linux - Docker:压缩文件但排除某些文件夹

标签 linux docker aws-lambda

以下是我的Dockerfile:

FROM lambci/lambda:build-python3.7
COPY lambda_function.py .

RUN python3 -m venv venv
RUN . venv/bin/activate

RUN pip install pystan==2.18
RUN pip install fbprophet

# Create zip
RUN pushd /var/task/venv/lib/python3.7/site-packages/
# Exclude folders in .lambdaignore
RUN zip -r -9 -q /var/task/lambda.zip *
RUN popd
RUN zip -9r lambda.zip lambda_function.py

你可以看到我写的一条评论:

Exclude folders in .lambdaignore

这就是我陷入困境的地方。在构建 .zip 文件之前。我想排除以下两个文件夹:

/var/task/venv/lib/python3.7/site-packages/pystan/stan/src
/var/task/venv/lib/python3.7/site-packages/pystan/stan/lib/stan_math/lib

理想情况下,我只添加一个 .lambdaignore 文件,并且每一行都从 .zip 中排除,这样会更灵活。你能帮我吗?

最佳答案

xargs 可以帮助您

尝试这样的事情:

RUN cat .lambdaignore | xargs zip -r -9 -q/var/task/lambda.zip * -x

关于linux - Docker:压缩文件但排除某些文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57339006/

相关文章:

docker - 未找到 Docker 客户端策略

go - 解析负载与 `serverless invoke local` 不同,然后在 APIGateway 后面部署时

python - AWS Lambda 函数中的单例实例生命周期 (Python)

linux - 如何在 RT Linux : fails with SIGTRAP 上使用 GDB 进行调试

linux - .NET Core - 为什么 AsyncLocal<> 引用构建在 Windows 而不是 Linux (netstandard2.0)

linux - 使用 Annoy 库中的 mmap() 在 Docker 容器之间共享 RAM

linux - Linux Dev 上的 Subversion 存储库

mongodb - Docker为MongoDB ReplicaSet撰写

proxy - haproxy/docker 未找到启用的监听器(检查 'bind' 指令)!退出

.net-core - Cake 命令 DotNetCoreTool 在构建服务器上失败并显示 "No executable found matching command"