AWS ECS - Создание пула работников Apache - PullRequest
0 голосов
/ 04 ноября 2019

Я недавно начал процесс контейнирования своих приложений. У меня нет большого опыта в этой области, поэтому я наткнулся на несколько концепций здесь.

У меня есть образ докера моего приложения, на котором запущены apache и php. Dockerfile:

# Build backend code
FROM sunfoxcz/php-build:5.6 AS php-build
COPY code/myapp /tmp/code/myapp
WORKDIR /tmp/code/myapp
RUN composer install && composer dump-autoload -o

# Build production container
FROM amazonlinux:1

# Update repo data
RUN yum makecache fast

# Install OS updates
RUN yum update -y \
    && yum-config-manager --enable epel

# Install Apache (2.4) and PHP (5.6)
RUN yum install -y httpd24 mod24_ssl php56 php56-mysqlnd php56-pgsql php-curl php56-mbstring php56-gd php56-devel php56-mcrypt php56-opcache

# Install needed packages
RUN yum install -y redis poppler-utils

# Install needed dev tools
RUN yum install -y gcc wget

# Install PHP Redis extension
RUN cd /tmp && \
    wget -O phpredis-4.3.0.tar.gz https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz && \
    tar xvfz phpredis-4.3.0.tar.gz && \
    cd phpredis-4.3.0 && \
    phpize && \
    ./configure && \
    make && \
    make install && \
    rm -rf /tmp/phpredis-4.3.0*



# Add our custom config files
COPY configs/httpd.conf /etc/httpd/conf/httpd.conf
COPY configs/php-conf.5.6 /etc/httpd/conf.d/php-conf.5.6
COPY configs/php.ini /etc/php.ini
COPY configs/ds-php-encryption-key /etc/ds-php-encryption-key

# Finally add our code files to the production container
COPY --from=php-build /tmp/code/myapp /var/www/html

EXPOSE 80

Я использую aws ECS для оркестровки с версией EC2.

Мой вопрос Сейчас я запускаю 20 контейнеров, но я понял, что очень неэффективно иметь apache и php на каждом отдельном контейнере ... он использует ресурсы ЦП без всякой причины. Я читал в Интернете, где кто-то кратко упомянул эту концепцию создания Apache пула рабочих , так что вам это не нужно на каждом отдельном объекте. Вообще-то, честно говоря, я не знаю, как это работает и как бы я это делал, и я не нашел намного больше об этом в своих онлайн-поисках.

Есть ли способ не запускать apache / php на каждом контейнере в моем кластере ECS?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Я понимаю, что этоэто довольно широкий вопрос, и я рад заполнить любые дополнительные детали, которые я, возможно, пренебрегаю.

...