所以我试图找出在我的bash脚本中调用此函数的最佳方法,以便在docker容器中执行。
#!/bin/bash
AWS_BUCKET="https://s3-bucket-location.com"
AWS_BUCKET_DEV_FILE="devfile.zip"
AWS_BUCKET_PIC_FILE="WORDPRESSpics.zip"
wordpress_production_S3_download () {
cd /tmp/
wget $AWS_BUCKET/$AWS_BUCKET_PIC_FILE
mv $AWS_BUCKET_PIC_FILE /var/www/html/wp-content/uploads/2017
cd /var/www/html/wp-content/uploads/2017
unzip $AWS_BUCKET_PIC_FILE
rm $AWS_BUCKET_PIC_FILE
chown -R www-data:www-data 12/
}
我想在docker容器中运行这个函数是这样的
docker exec -ti dockerwordpressmaster_mysql_1 bash -c "wordpress_production_S3_download"
但我得到
bash:wordpress_production_S3_download:找不到命令
我也尝试将函数子网站化到变量中 即
test=$(wordpress_production_S3_download)
docker exec -ti dockerwordpressmaster_mysql_1 bash -c "$test"
但功能"变量" test只能在本地机器上执行,而不是像我想的那样在Docker容器中执行。
非常感谢任何有关此问题的帮助
答案 0 :(得分:2)
您需要将包含该函数的脚本文件复制到dockerwordpressmaster_mysql_1
容器中,然后执行它。
docker cp wordpress-script.sh dockerwordpressmaster_mysql_1:wordpress-script.js
docker exec -ti dockerwordpressmaster_mysql_1 bash -c "source wordpress-script.sh && wordpress_production_S3_download"