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

问题描述 投票:0回答:1

所以我试图找出在我的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"

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

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

wordpress bash shell docker
1个回答
1
投票

您需要将包含该函数的脚本文件复制到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"
© www.soinside.com 2019 - 2024. All rights reserved.