我计划使用Jenkins实现持续集成。但是这种CI必须在docker容器中实现。使用的工具有
- 码头工人 詹金斯GIT Maven AWS
我计划用Jenkins映像构建一个docker容器。我的疑问是如何在Docker容器中安装GIT和Maven,并访问它们以从GIT存储库中使用Maven构建作业?
之后,如何将其部署到我的AWS实例?
您可以创建一个DockerFile,并在 DockerFile 中提及您想要下载,安装和想要运行的命令。
参考Docker文档。您甚至可以将本地的资源添加到docker容器中。一旦构建docker文件,映像就准备好了。
在Docker容器中安装Git和Maven。您需要包含资源的源链接和安装命令。
下面我提到了一个示例docker文件来安装JDK和Tomcat。
要在其中安装Git和Maven,您需要添加以下行:
GIT:RUN apt-get update &&
sudo apt-get install git
Maven: RUN wget http://mirror.olnevhost.net/pub/apache/maven/binaries/apache-maven-3.2.1-bin.tar.gz
ENV (your Path)
和构建命令等…
一旦你完成它。无论如何,您可以使用Jenkins控制台继续执行命令。确保你安装了正确的插件。你可以很容易地弄明白。
您也可以通过以下方式实现持续集成在docker上只安装JDK和Tomcat。和在容器外实现剩余的maven构建和jenkins部分,并通过jenkins将其放置在docker中。这种方法可以帮助您在任何docker存储库中创建和保存docker映像的副本,因为您要对环境进行更改。
但是根据场景选择。
希望它能帮助…:)
Docker示例文件:::
FROM ubuntu:latest
MAINTAINER Sarat <sarat.e99@gmail.com>
RUN apt-get update &&
apt-get install -yq --no-install-recommends wget pwgen ca-certificates &&
apt-get clean &&
rm -rf /var/lib/apt/lists/*
ENV TOMCAT_MAJOR_VERSION 8
ENV TOMCAT_MINOR_VERSION 8.0.11
ENV CATALINA_HOME /tomcat
# Install dependencies
RUN apt-get update &&
apt-get install -y git build-essential curl wget software-properties-common zip unzip
# Install JDK 8
RUN
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections &&
add-apt-repository -y ppa:webupd8team/java &&
apt-get update &&
apt-get install -y oracle-java8-installer wget unzip tar &&
rm -rf /var/lib/apt/lists/* &&
rm -rf /var/cache/oracle-jdk8-installer
# Define commonly used JAVA_HOME variable
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
# INSTALL TOMCAT
RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz &&
wget -qO- https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz.md5 | md5sum -c - &&
tar zxf apache-tomcat-*.tar.gz &&
rm apache-tomcat-*.tar.gz &&
mv apache-tomcat* tomcat
ADD user.sh /user.sh
ADD run.sh /run.sh
RUN chmod +x /*.sh
#EXPOSE 8080
CMD ["/run.sh"]
如何让Jenkins在Docker上构建NodeJS, Ruby和Maven
这是我面临的一个问题,我想我应该尽力解决它。Jenkins很好,但是当你想把它转移到另一个系统时,你会意识到你安装了一个又一个它所依赖的服务,造成了多大的负担。解耦Docker是一个很好的选择,但是Jenkins做的是一个非常简单的Docker。
Dockerfile
我的文章解释dockerfile以及如何使用或扩展它
如何在AWS上运行Docker
我觉得这是一个非常明显的问题,可能有很多解决方案浮现在脑海中。
- 使用docker的标准示例将docker直接安装到EC2实例上。
- 使用AWS EC2容器服务。他们创建了一个完整的服务,使在AWS上运行Docker更容易。