Пожалуйста, выполните следующие шаги:
- Запустите кластер EC2 в соответствии с вашими потребностями.
- Установите докер на свой локальный компьютер.Например, для Ubuntu (
sudo apt-get isntall docker.io
) systemctl start docker
- Создайте новую папку для нашего докера jenkins.Создайте в нем новый Dockerfile со следующим содержимым.
FROM Jenkins
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
- Создайте plugins.txt в той же папке и добавьте строку ниже
amazon-ecs:1.3
- Войдите в ECR, используя aws cli.Сначала настройте aws с вашими учетными данными.
aws ecr get-login --region <REGION>
Запустите вывод, полученный из вышеуказанной команды, для входа в Docker. sudo docker build -t jenkins_master .
sudo docker tag jenkins_master:latest <AWS ACC ID>.dkr.ecr.<REGION>.amazonaws.com/jenkins_master:latest
- Создать репозиторий в ECR для этого образа
aws ecr create-repository --repository-name jenkins_master
- Нажмите на изображение в AWS ECR.
sudo docker push <AWS ACC ID>.dkr.ecr.<REGION>+.amazonaws.com/jenkins_master:latest
- Наш образ док-станции Jenkins готов.Но данные, хранящиеся на этом сервере Jenkins, не будут постоянными.Для постоянного хранения данных мы создадим другой образ докера, который создаст том с точкой монтирования.Для этого создайте новый каталог для этого нового образа Docker и внутри него создайте еще один Dockerfile с содержимым ниже.
FROM Jenkins
VOLUME ["/var/jenkins_home"]
- Снова следуйте тем же командам, чтобы отправить этот новый репозиторий в ECR.
sudo docker build -t jenkins_dv .
sudo docker tag jenkins_dv:latest <AWS ACC ID>.dkr.ecr.<REGION>.amazonaws.com/jenkins_dv:latest
aws ecr create-repository --repository-name jenkins_dv
sudo docker push <AWS Account Number>.dkr.ecr.<REGION>.amazonaws.com/jenkins_dv:latest
- Теперь наши изображения готовы.Мы будем использовать эти образы для запуска их в качестве службы в нашем кластере ECS.Для этого нам нужно установить ecs-cli с помощью команды ниже для linux.
sudo curl -o /usr/local/bin/ecs-cli https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-latest
- Создайте новый текстовый файл с содержимым ниже, который будет иметь конфигурацию jenkins.
jenkins_master:
image: jenkins_master
cpu_shares: 100
mem_limit: 2000M
порты:
- «8080: 8080»
- «50000: 50000»
volume_from:
- jenkins_dv
jenkins_dv:
изображение: jenkins_dv
cpu_shares: 100
mem_limit: 500M
15. Наконец, отправьте этот сервис, используя указанный выше файл, во вновь созданный кластер.
ecs-cli compose --file docker_compose.txt service up --cluster <cluster_name>
Надеюсь, это поможет!