Ниже приведен мой Dockerfile, которому для размещения моего приложения нужны apache2 и php7. Я создаю docker изображение в Jenkins и помещаю его в AWS ECR-контейнер, используя следующие команды: -
sudo docker build --tag abcd:latest --no-cache .
aws ecr get-login --region ap-south-1 --no-include-email | sudo bash
sudo docker tag abcd:latest 123456789.dkr.ecr.ap-south-1.amazonaws.com/abcd-ecr
sudo docker push 123456789.dkr.ecr.ap-south-1.amazonaws.com/abcd-ecr
Ошибка: - Я вижу, что IP-адреса целевой группы непрерывно истощаются.
FROM alpine:3.10
EXPOSE 443
#Installing Apache
RUN \
apk add --no-cache \
apache2-proxy \
apache2-ssl \
apache2-utils \
curl \
git \
logrotate \
openssl \
vim \
bash
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
#Installing php && php-mysql
USER root
RUN apk --no-cache add \
php7 \
php7-apache2 \
php7-ctype \
php7-curl \
php7-dom \
php7-fileinfo \
php7-ftp \
php7-iconv \
php7-json \
php7-mbstring \
php7-mysqlnd \
php7-mysqli \
php7-openssl \
php7-pdo \
php7-pdo_sqlite \
php7-pear \
php7-phar \
php7-posix \
php7-session \
php7-simplexml \
php7-sqlite3 \
php7-tokenizer \
php7-xml \
php7-xmlreader \
php7-xmlwriter \
php7-zlib \
php7-common \
php7-opcache \
php7-mcrypt \
php7-cli \
php7-gd
#creating workdir
WORKDIR /var/www/projects/abcd
#Copying Source code to docker container
COPY ./ .
#Copy the conf files into the docker container
COPY httpd.conf /etc/apache2/
COPY vhost.conf /etc/apache2/conf.d/
#Changing the source code owner to Apache
RUN chown -R apache:apache ./
RUN chown -R apache:apache /var/www/
#Mounting Volume
VOLUME /var/www/projects/abcd
CMD ["httpd","-D","FOREGROUND"]
Ниже приведен код terraform, используемый для создания балансировщика нагрузки: -
resource "aws_lb" "lb" {
name = "lb"
security_groups = var.security_group
subnets = data.aws_subnet_ids.pub.ids
load_balancer_type = "application"
internal = false
tags = {
Project = var.project
Environment = var.environment
}
}
resource "aws_lb_listener" "lb_listner_80" {
load_balancer_arn = aws_lb.lb.arn
port = "80"
protocol = "HTTP"
default_action {
type = "redirect"
redirect {
port = "443"
protocol = "HTTPS"
status_code = "HTTP_301"
}
}
}
resource "aws_lb_listener" "lb_listner_443" {
load_balancer_arn = aws_lb.lb.arn
port = "443"
protocol = "HTTPS"
ssl_policy = "ELBSecurityPolicy-2016-08"
certificate_arn = data.aws_acm_certificate.cert.arn
default_action {
type = "forward"
target_group_arn = var.target_group_arn_wp
}
}
vhost.conf file
<VirtualHost *:80>
DocumentRoot "/var/www/projects/abcd”
ServerAdmin ec2-user@localhost
ServerName abcd.zeecdn.com
<Directory /var/www/html/>
AllowOverride All
Require all granted
Allow from all
</Directory>
ErrorLog "/var/log/apache2/error_log_jvwp"
CustomLog "/var/log/apache2/access_log_jvwp" combined
</VirtualHost>