Terima kasih kepada jawaban VonC Saya berhasil membuatnya bekerja tetapi saya sedikit mengubah arsitektur saya, menghasilkan 3 wadah, bukan hanya 1.
Saya memiliki satu wadah untuk setiap versi Apache/PHP, dan satu wadah dengan Nginx sebagai proxy terbalik. Saya pikir Anda dapat dengan mudah mengadaptasi ini untuk menginstal Nginx di Host dan mengubah konfigurasinya agar sesuai dengan arsitektur yang saya jelaskan dalam pertanyaan saya.
Perhatikan bahwa karena saya baru mengenal Docker, dan seorang pemula tentang administrasi sistem Linux, mungkin ada beberapa kesalahan dan hal-hal yang tidak masuk akal dalam skrip berikut, tetapi itu berhasil untuk saya. Jangan ragu untuk memperbaikinya :)
Gambar Proksi Terbalik Nginx
File Docker :
FROM debian:jessie
MAINTAINER AntoineB version: 0.1
RUN apt-get update && \
apt-get install -y --force-yes \
nginx \
nano
EXPOSE 80
EXPOSE 443
ADD ./proxy.conf /etc/nginx/conf.d/proxy.conf
CMD ["nginx"]
Berikut proxy.conf
yang dirujuk berkas :
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
client_header_buffer_size 64k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 16k;
proxy_buffers 32 16k;
proxy_busy_buffers_size 64k;
Dan saya menjalankannya menggunakan skrip bash berikut :
docker run -ti -d -p 80:80 -v /home/antoineb/Docker/images/nginxproxy/virtualhosts:/etc/nginx/sites-enabled --name nginxproxy nginxproxy /bin/bash
Saya memiliki /home/antoineb/Docker/images/nginxproxy/virtualhosts
folder di host saya yang berisi default
berikut berkas :
server {
listen 80;
server_name siteZ.com;
location / {
proxy_pass http://apache22php53:80;
}
}
server {
listen 80;
server_name siteA.com;
location / {
proxy_pass http://apache24php56:80;
}
}
server {
listen 80;
server_name siteB.com;
location / {
proxy_pass http://apache24php56:80;
}
}
Apache 2.2 + gambar PHP 5.3
File Docker :
FROM debian:wheezy
MAINTAINER AntoineB version: 0.1
RUN apt-get update
RUN echo "deb http://packages.dotdeb.org squeeze all" > /etc/apt/sources.list.d/dotdeb_squeeze.list
RUN echo "deb-src http://packages.dotdeb.org squeeze all" >> /etc/apt/sources.list.d/dotdeb_squeeze.list
RUN echo "deb http://ftp.debian.org/debian/ squeeze main contrib non-free" >> /etc/apt/sources.list.d/dotdeb_squeeze.list
RUN echo "Package: *php*" > /etc/apt/preferences.d/php53.pref
RUN echo "Pin: release o=packages.dotdeb.org,n=squeeze" >> /etc/apt/preferences.d/php53.pref
RUN echo "Pin-Priority: 989" >> /etc/apt/preferences.d/php53.pref
RUN apt-get update && \
apt-get install -y --force-yes \
apache2 \
php5 \
php5-curl \
php5-gd \
php5-mysql \
nano
RUN a2enmod \
php5 \
rewrite
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
EXPOSE 80
EXPOSE 443
CMD /usr/sbin/apache2ctl -D FOREGROUND
Saya meluncurkannya menggunakan skrip berikut :
docker run -ti -d -p 2253:80 -v /home:/home -v /home/antoineb/Docker/images/apache22php53/virtualhosts:/etc/apache2/sites-enabled --name apache22php53 apache22php53 /bin/bash
Situs web saya disimpan di /home/website.com/www, dan virtualhosts Apache saya disimpan di Host di /home/antoineb/Docker/images/apache22php53/virtualhosts
.
Gambar Apache 2.4 + PHP 5.6.9
File Docker :
FROM debian:jessie
MAINTAINER AntoineB version: 0.1
RUN apt-get update && \
apt-get install -y --force-yes \
apache2 \
php5 \
php5-curl \
php5-gd \
php5-mysql \
nano
RUN a2enmod \
php5 \
rewrite
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
EXPOSE 80
EXPOSE 443
CMD /usr/sbin/apache2ctl -D FOREGROUND
Skrip saya yang sedang berjalan :
docker run -ti -d -p 2456:80 -v /home:/home -v /home/antoineb/Docker/images/apache24php56/virtualhosts:/etc/apache2/sites-enabled --name apache24php56 apache24php56 /bin/bash
Sekali lagi, situs web saya disimpan di /home/website.com/www, dan virtualhost Apache saya disimpan di Host di /home/antoineb/Docker/images/apache24php56/virtualhosts
.