你如何从shell脚本运行函数和variables到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:找不到命令

我也试图将该子function放入variables即

 test=$(wordpress_production_S3_download) docker exec -ti dockerwordpressmaster_mysql_1 bash -c "$test" 

但是函数“variables”testing只在本地机器上执行,而不是像我想的那样在Docker容器中执行。

任何问题的帮助,不胜感激

您需要将包含函数的脚本文件复制到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"