Команда sed в Dockerfile не будет выполнена или перезаписана - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу, чтобы он запускал apache в док-контейнере от имени того же пользователя, который я использую в моей хост-системе.Таким образом, я владею файлами на своем хосте, чтобы редактировать их, и apache (PHP) может создавать папки и т.д ..

Мой Dockerfile :

FROM php:7.2-apache

RUN adduser wipster --disabled-password --disabled-login --gecos ""

ENV APACHE_RUN_USER wipster
ENV APACHE_RUN_GROUP wipster

RUN sed -i "s#APACHE_RUN_USER:=.*#APACHE_RUN_USER:=wipster}#" /etc/apache2/envvars \
    && sed -i "s#APACHE_RUN_GROUP:=.*#APACHE_RUN_GROUP:=wipster}#" /etc/apache2/envvars

RUN    apt-get -qqy update \
    && apt-get install -y libjpeg-dev libpng-dev re2c libmcrypt-dev zlib1g-dev libssl-dev libc-client2007e-dev libkrb5-dev libcurl4-gnutls-dev libxml2-dev libxslt-dev libldap2-dev libssl-dev vim strace unzip g++

RUN touch /var/www/html/php-error.log
RUN chown wipster:wipster /var/www/html/php-error.log

RUN    docker-php-ext-install bcmath mbstring mysqli pdo_mysql zip curl pcntl \
    && docker-php-ext-configure gd --with-jpeg-dir=/usr/lib \
    && docker-php-ext-install gd \
    && docker-php-ext-configure imap --with-imap-ssl --with-kerberos \
    && docker-php-ext-install imap \
    && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
    && docker-php-ext-install ldap

# Install xhprof from tideways.
RUN curl -L https://github.com/tideways/php-xhprof-extension/archive/v5.0-beta2.tar.gz | tar xz && \
    cd php-xhprof-extension-5.0-beta2/ && \
    phpize && \
    ./configure && \
    make && \
    make install

RUN yes | pecl install xdebug-2.7.2 \
    && pecl install redis \
    && docker-php-ext-enable redis xdebug opcache tideways_xhprof

# /usr/local/etc/php
ADD config/crm.php.ini /usr/local/etc/php/conf.d/
ADD config/xdebug.ini /usr/local/etc/php/conf.d/
ADD config/opcache.ini /usr/local/etc/php/conf.d/
ADD config/opcache-blacklist /usr/local/etc/php/
ADD config/xhprof.ini /usr/local/etc/php/conf.d/

RUN a2enmod headers expires deflate rewrite

# xdebug cli debugging
RUN export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_port=9000 remote_host=192.168.1.144 remote_connect_back=0"
RUN export PHP_IDE_CONFIG="serverName=wipster-dckr"

EXPOSE 80

VOLUME ["/var/www"]

Проблема заключается в том, когдаЯ подключаюсь к контейнеру через ssh и проверяю / etc / apache2 / envvars, в нем все еще есть www-данные в качестве запускаемого пользователя.Я использовал тот же Dockerfile на Alpine Linux с php: 7.1-apache, и он работал просто отлично.Когда я выполняю команду sed вручную, она также работает.Сейчас я нахожусь на элементарной ОС Juno, и версия докера имеет вид php: 7.2-apache .

Мой docker-compose.yml :

version: "3"

networks:
    webnet:
services:
    web:
        image: wipster/relaunch:1
        depends_on:
            - db
        deploy:
            replicas: 1
            resources:
                limits:
                    cpus: '3.0'
                    memory: 2000M
                reservations:
                    cpus: '1.0'
                    memory: 1000M
        volumes:
            - ../relaunch:/var/www/html:delegated
        ports:
            - 8000:80
        networks:
            - webnet
    db:
        image: mysql:5.7
        deploy:
            replicas: 1
            resources:
                limits:
                    cpus: '2.0'
                    memory: 1000M
                reservations:
                    cpus: '1.0'
                    memory: 500M
        volumes:
            - db_data_wipster:/var/lib/mysql:delegated
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: wipster
            MYSQL_USER: root
            MYSQL_PASSWORD: root
        ports:
            - 3306:3306
        networks:
            - webnet
        command: mysqld --sql_mode="NO_ENGINE_SUBSTITUTION" --innodb-buffer-pool-size=536870912 --innodb-flush-method=O_DIRECT --innodb-flush-log-at-trx-commit=0
volumes:
    db_data_wipster:

Я что-то упустил?Нужно ли запускать команду sed позже?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...