docker -compose команда выполнить задачи -set права доступа в / var / www / - PullRequest
0 голосов
/ 22 февраля 2020

У меня проблемы со следующим docker -компонентным выполнением

  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: синтаксическая ошибка:" && "непредвиденный" do я должен уйти от "\", который я пробовал также с "\"? но, к сожалению, лог-файл ничего не говорит

Есть идеи? спасибо rob

----- добавлено из-за вопроса -----

HI

есть 2 активированных Dockerfile

1st ..

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_bpmspace_base: production_server_master"

вы можете получить его с помощью "docker pull bpmspace / liam3: liam3_master-production_server_master"

2nd

FROM bpmspace/docker_bpmspace_base:production_server_master
COPY . /var/www/html/
COPY scripts/liam3-entrypoint.sh /usr/local/bin/
COPY scripts/liam3-import_sql_all.sh /usr/local/bin/
RUN chmod 700 /usr/local/bin/*.sh
RUN ln -s /usr/local/bin/liam3-entrypoint.sh / # backwards compat
ENTRYPOINT ["liam3-entrypoint.sh"]

для создания "bpmspace / docker_bpmspace_base: production_server_master"

вы можете получить его с помощью "docker pull bpmspace / liam3: liam3_master-production_server_master" и файлов из https://github.com/BPMspaceUG/liam3

3 задействованных *. sh ..

1) production_server_master. 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

но я получаю и "Состояние остановлено на несколько секунд с кодом выхода 0" при запуске контейнера

Не знаю почему - лог-файл пуст

, когда я комментирую "#ENTRYPOINT [" liam3-entrypoint. sh "]" во 2-м док-файле rvers запускается без проблем

Когда я "bash в контейнер" и выполняю "/liam3-entrypoint.sh", это работает как чудо-код, и импортируется БД sql, а также права set.

сервер (служба) работает в docker рое с

docker развертывание стека --compose-file docker -compose.yml PRMS-DEV

спасибо, грабите

...