如何从shell脚本到docker运行函数和变量?

时间:2017-12-26 14:49:44

标签: wordpress bash shell docker

所以我试图找出在我的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容器中执行。

非常感谢任何有关此问题的帮助

1 个答案:

答案 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"