Я недавно начал процесс контейнирования своих приложений. У меня нет большого опыта в этой области, поэтому я наткнулся на несколько концепций здесь.
У меня есть образ докера моего приложения, на котором запущены 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?
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Я понимаю, что этоэто довольно широкий вопрос, и я рад заполнить любые дополнительные детали, которые я, возможно, пренебрегаю.