问题描述
我有一个脚本,可以使用crontab每分钟将文件上传到S3存储桶。我正在使用docker运行脚本,我需要对主机上的文件所做的更改反映在docker容器上并上传到S3存储桶。
脚本每分钟将/data/boo.txt
上传到S3。
import boto3
s3 = boto3.client('s3')
s3_bucket_name = 'ap-rewenables-feature-data'
with open("/data/boo.txt","rb") as f:
s3.upload_fileobj(f,s3_bucket_name,"boo.txt")
我的Dockerfile
使用pip安装boto3
库,设置了AWS凭证,并使用crond
按计划的时间间隔运行脚本。
FROM python:3.7-alpine
workdir /scripts
RUN pip install boto3
ENV AWS_ACCESS_KEY_ID=#########
ENV AWS_SECRET_ACCESS_KEY=##########
copY s3-file-upload-crontab /etc/crontabs/root
RUN chmod 644 /etc/crontabs/root
copY s3_operations.py /scripts/s3_operations.py
RUN chmod +x /scripts/s3_operations.py
ENTRYPOINT crond -f
*/1 * * * * python /scripts/s3_operations.py
根据我所知道的,我必须使用bind mount
来使目录在主机和容器之间保持同步。我正在使用docker-compose.yml
定义服务和bind mount
。
version: "3.8"
services:
data-transfer:
image: ap-aws-s3-file-upload
build:
context: ./
volumes:
- ./data:/data
运行docker-compose up
创建一个容器,脚本每分钟运行一次并上传文件。但是我无法在主机和容器之间同步文件内容。无论我对S3存储桶中的文件boo.txt
进行什么更改,都不会反映出来。
我不确定我要去哪里哪里,bind mount
是否应该跟踪文件内容?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)