Permissions docker compose命令执行问题-在/var/www中设置权限/
我对以下docker compose执行有问题Permissions docker compose命令执行问题-在/var/www中设置权限/,permissions,docker-compose,Permissions,Docker Compose,我对以下docker compose执行有问题 PRMS_DEV_liam3_server: image: bpmspace/liam3:liam3_master-production_server_master hostname: PRMS_DEV_liam3_server **command: sh -c "/var/www/html/sqldump/import_sql_all.sh && chown -R www-data:www-data /
PRMS_DEV_liam3_server:
image: bpmspace/liam3:liam3_master-production_server_master
hostname: PRMS_DEV_liam3_server
**command: sh -c "/var/www/html/sqldump/import_sql_all.sh && chown -R www-data:www-data /var/www/ && find /var/www/ -type f -exec chmod 660 {} \; && find /var/www/ -type d -exec chmod 770 {} \;"**
volumes:
- PRMS_DEV_liam3_server:/var/www/html
depends_on:
- PRMS_DEV_liam3_mariadb10
environment:
- DB_HOST=PRMS_DEV_liam3_mariadb10
- DB_PORT=3306
- DB_NAME=bpmspace
- DB_USER=bpmspace
- DB_PASSWORD=12
- DB_ROOT_PASSWORD=12
deploy:
labels:
- traefik.enable=true
- traefik.http.routers.PRMS_DEV_liam3_server.rule=Host(`PRMS_DEV_liam3_server.bpmspace.net`)
- traefik.http.services.PRMS_DEV_liam3_server-service.loadbalancer.server.port=80
placement:
constraints: [node.role == manager]
networks:
- proxy-net
“命令”未运行
日志文件显示“sh:1:语法错误:&&“意外”
我是否必须逃离我用“\”试过的“\”?
但不幸的是日志文件什么也没说
有什么想法吗?
谢谢你,罗布
-----因为一个问题而添加-----
嗨
有2个Dockerfile已开票
第一
FROM php:7.3.5-apache-stretch
RUN docker-php-ext-install pdo_mysql mysqli
RUN docker-php-ext-enable pdo_mysql mysqli
RUN export DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y --no-install-recommends apt-utils
RUN echo "postfix postfix/mailname string placeholder.hostname.com" | debconf-set-selections
RUN echo "postfix postfix/main_mailer_type string 'Satellite system'" | debconf-set-selections
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y postfix
RUN apt-get install -y openssh-client
RUN apt-get install -y mysql-client
RUN apt-get install -y mailutils
RUN apt-get install -y libicu-dev
RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) intl pdo_mysql bcmath mbstring exif gd
RUN a2enmod rewrite
RUN mkfifo /var/spool/postfix/public/pickup
RUN curl -L https://storage.googleapis.com/etcd/v3.4.3/etcd-v3.4.3-linux-amd64.tar.gz -o /tmp/etcd-v3.4.3-linux-amd64.tar.gz
RUN mkdir /tmp/etcd-download
RUN tar xzvf /tmp/etcd-v3.4.3-linux-amd64.tar.gz -C /tmp/etcd-download --strip-components=1
RUN rm -f /tmp/etcd-v3.4.3-linux-amd64.tar.gz
RUN cp /tmp/etcd-download/etcdctl /usr/local/bin/
RUN rm -rf /tmp/etcd-download/
RUN etcdctl version
COPY production_server_master.sh /usr/local/bin/production_server_master.sh
创建“bpmspace/docker\u bpmspace\u基地:生产\u服务器\u主机”
您可以通过“docker pull bpmspace/liam3:liam3\u master-production\u server\u master”获得它
第二
创建“bpmspace/docker\u bpmspace\u基地:生产\u服务器\u主机”
您可以通过“docker pull bpmspace/liam3:liam3\u master-production\u server\u master”获得它
以及来自
3个发票为*.sh
1) 生产服务器主机.sh
#!/bin/bash
chown -R www-data:www-data /var/www/
find /var/www/ -type f -exec chmod 660 {} \;
find /var/www/ -type d -exec chmod 770 {} \;
2) liam3-entrypoint.sh
#!/bin/sh
set -e
/usr/local/bin/production_server_master.sh
/usr/local/bin/liam3-import_sql_all.sh
# first arg is `-f` or `--some-option`
if [ "${1#-}" != "$1" ]; then
set -- apache2-foreground "$@"
fi
exec "$@"
3) liam3-import_sql_all.sh
#!/bin/bash
for i in {1..50}
do
# check if db is up
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME -e "use bpmspace_liam3-v1;"
if [ $? -eq 0 ]
then
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_structure.sql
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_statemachine.sql
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_min.sql
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_diff.sql
exit 0
else
sleep 5
fi
done
echo "Failure: Could not connect to $DB_HOST $DB_NAME" >&2
exit 1
#/bin/bash
对于{1..50}中的i
做
#检查数据库是否打开
mysql-u root-p$DB\u root\u PASSWORD-h$DB\u HOST$DB\u NAME-e“使用bpmspace\u liam3-v1
如果[$?-等式0]
然后
mysql-u root-p$DB\u root\u密码-h$DB\u主机$DB\u名称&2
出口1
但我得到了
运行容器时,“状态停止数秒,退出代码为0”
不知道为什么-日志文件为空
当我在第二个dockerfile中注释“#ENTRYPOINT[“liam3 ENTRYPOINT.sh”]”时,服务器启动没有问题
当我“bash into container”并执行“/liam3 entrypoint.sh”时,它就像一个符咒一样工作,sql DB和权限集都被导入
服务器(服务)在docker swarm中运行,具有
docker堆栈部署--编写文件docker-compose.yml PRMS-DEV
感谢rob将命令放入脚本文件xxx.sh,将其添加到您的构建中,然后在命令中调用xxx.shThank-我会尝试一下,但该命令应该在stratup之后执行-因此我必须将其附加到入口点脚本,或者?我会做一些测试…你能提供Dockerfile吗我在问题后添加了一些信息------因为一个问题而添加-----
#!/bin/bash
for i in {1..50}
do
# check if db is up
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME -e "use bpmspace_liam3-v1;"
if [ $? -eq 0 ]
then
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_structure.sql
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_statemachine.sql
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_min.sql
mysql -u root -p$DB_ROOT_PASSWORD -h $DB_HOST $DB_NAME < /var/www/html/sqldump/bpmspace_liam3_v1_diff.sql
exit 0
else
sleep 5
fi
done
echo "Failure: Could not connect to $DB_HOST $DB_NAME" >&2
exit 1