• [技术干货] CloudBuild 自定义构建环境构建打包Docker 镜像
    1、问题现象使用自定义构建环境时,如何把编译构建好的jar包(或者其他软件包)给到SWR 打包镜像使用,按照帮助文档进行操作,获取不到编译好的jar (或者其他软件包)。 2、问题定位实际底层运行的是两个 container;两个container 间需要通过共享目录来存储相关代码或者编译构建好的jar(或者其他软件包)。实现连个container间的文件共享,workspace 就是基于这一块实现的代码目录(共享目录),需要把相关代码以及软件包放在这个目录下。 3、解决方案:创建自定义构建环境3.1、获取集成镜像,参考如下链接: cid:link_13.2、基于基础镜像build 一个构建环境,以openjdk 1.8.0 ,maven 为例。FROM swr.cn-south-1.myhuaweicloud.com:443/codeci/special_base_image:centos7-base-1.0.2 USER root RUN yum install -y java-1.8.0-openjdk.x86_64 RUN yum install -y maven RUN yum install -y git RUN yum clean all3.3、将构建好的镜像推送到SWR,参考链接: cid:link_2 3.4、设置镜像为公开 4、解决方案:使用自定义构建环境编译构建,并制作镜像推送到swr4.1、新建构建任务,使用swr公共镜像,并填入镜像地址 4.2、命令行中填入编译构建命令,需要使用到系统预定于参数 WORKSPACE(工作空间,源代码根目录)cd ${WORKSPACE} git clone https://{主账号}/{子账号}:{密码}@codehub.devcloud.cn-east-3.huaweicloud.com/demo-xxxxxxx/dubbo-demo.git cd dubbo-demo git checkout ${codeBranch} mvn package -Dmaven.test.skip=true -U -e -X -B注意:主账号,子账号,密码需要进行URL编码4.3、使用组件‘制作镜像并推送到SWR仓库’,将镜像推送到SWR。设置工作目录,需要使用到 workspace 4.4、镜像Dockerfile 文件FROM openjdk:8u181-jdk-alpine WORKDIR /opt/consumer COPY target/*.jar /opt/consumer/consumer.jar ENTRYPOINT ["java","-jar","/opt/consumer/consumer.jar"]4.5、执行构建任务
  • [优秀实践] openEuler容器镜像移植项目二期实践感受
    openEuler容器镜像移植项目二期实践感受  很荣幸参与了openEuler容器镜像移植项目二期,这是我第一次参与这种正式的企业项目,在项目期间,夯实了自己基础的同时,与各位学长学姐一起推进项目,也学习到了很多解决问题的思路,我对于openEuler系统也有了更深的了解。(1)项目概要  该项目的目的就是将github上的开源软件包移植到openeuler上,使其Dockerfile能够在openEuler-20.03-LTS-SP1-ALL-DNF为基础镜像中成功构建容器镜像,以解决开源软件包中的Dockerfile无法在openEuler基础镜像上进行构建的限制问题,使其可以适配openEuler的环境。该项目的难点在于需要移植176个开源软件包的Dockerfile,由于需移植的包的数量比较大,因此,寻早已中高效的项目开发方法具有重要意义。(2)方案探索  首先针对项目数量多的特点,我们选择从最明显最普遍的问题——缺包问题入手。与以往不同,我们的方向从每个人负责一个Dockerfile转变为一个人负责一个出问题的包。因为我们负责的都是以centos为基础镜像的Dockerfile,所以这种缺包问题都应该存在着通用的替代方案。  为了提高项目的开发效率,我们采用写自动化脚本的方法去匹配这些出问题的包名,然后将其解决方案使用统一的格式,用脚本去进行解决。这样我们大家的脚本汇集起来会使我们不会遇到重复的问题,同时修复速度也有一定的提升。(3)项目收获  在这个项目中,我最感兴趣,也是我主要负责的就是写脚本的工作。虽然说是脚本,但其实只是写正则表达式去进行匹配后替换,通过这种方式实现Dockerfile的缺包问题修复。所以在做这个项目的时候,我从对正则表达式一窍不通到熟练运用还多亏了这个项目,不仅提供了学习的动机,还提供了实践的场所。因为其中出现了不少奇怪的问题,让我反复思考,了解到正则表达式需要很多限制,才能精准匹配到我想换的地方,还需要结合实际问题,做一些修改。正因如此,我才学习到了很多很多正则表达式的知识。  不仅如此,在后续修复Dockerfile的其他问题时,我渐渐开始理解Dockerfile的原理,Dockerfile在做什么工作,作者想在Dockerfile中实现什么,于是在修复这些疑难杂症的时候,我慢慢有了更多思路。所以与此同时锻炼了我独立思考的能力,也学习到了很多Dockerfile和Linux命令,为现在我能熟练使用grep、sed、管道等等命令在Linux下进行文字提取,统计以及写shell脚本等等都奠定了基础。(4)项目感想  参与这项目不仅对我是一种能力的提升,而且我也深感荣幸。这个项目的目的是使更多的开源软件包可以适配国产系统openEuler,培养openEuler系统的生态环境,打破对国外技术过度依赖的僵局,为未来我们能更舒适的使用openEuler系统奠定基础。  虽然我们这个项目所做的贡献不过是一小步,但我相信会有更多的人加入进来,加入到国产生态的建设中。华为公司的众智计划就是国产生态建设的桥梁,多亏华为公司提供了众智计划这样的项目机会,我们才能更早的投入到国产生态的建设中,才能更早一步为国家贡献一份自己的力量。希望今后能够有更多的机会参与到华为公司项目中,也希望有更多人能加入进来,一起建设国产生态。 武汉理工大学 - 智能计算系统研究团队 - 余永淇 指导老师:柳星老师
  • [优秀实践] 浅谈容器镜像制作开发移植的项目实践
           有机会接触到华为的容器镜像制作开发移植的项目,从开始的一头雾水到后来熟练制作,每一遍的相似操作中总会有新的发现,整体做下来最大的收获就是对linux系统底层的运作又有了更加深刻的理解,相比技术性的提高更重要的是相关的专业素养得到增加,以及知识面得到拓广,并且和华为的合作给我留下了很愉快的回忆。       其实大部分人都习惯了使用windows系统,界面化的设计极大地贴近人们的使用习惯,让大多数人都习惯甚至依赖该系统,可是作为计算机专业的学习者,对底层更加了解会极大地帮助我们今后的专业学习,了解linux系统并熟练地使用,会让计算机专业相关的学习效率事半功倍。即使我们学习的内容可能并不涉及底层的相关知识,但是这会使我们的专业素养得到极大地提高,并不是一个只学习了一些计算机语言的码农。       这个项目的本质是新的生态系统向实际应用转化的过程中,对实际应用的适应的探索,尝试把现有的项目移植到新的系统中,测试项目在这个系统中存在的问题并且进行修补,以求对这个新的生态系统进行完善。对很多数人来说生态系统这个词可能很熟悉,但是并不真的了解构建新的生态系统的意义以及背后的困难。经历了米国的制裁,我们认识了华为鸿蒙系统,自然也知道了自主掌握底层系统技术以及拥有自己的系统,对一个企业和国家来说是多大的底气。国家的崛起很大一部分是技术的崛起,华为作为国内屈指可数的大企业,很佩服高层决策者的眼光和魄力来构建自己的生态环境,我们作为热门专业的学习者,很幸运能和华为合作,来提高自己的专业技能,同时为国家的发展尽了一份力,期待未来自己可以做的更多。       我们只知道在linux系统中只需要一句安装指令就可安装软件,顺带解决它依赖的软件,甚至都不需要指定安装的位置以及不需要设置安装变量,但是我们从来没想过深层的原因。为什么一句命令就能安装呢?为什么又有些软件安装不了呢?在linux中有自己的软件源,当用户提出需求的时候,linux会在自己的软件源里查找匹配的软件,并根据软件文件中的要求,查找安装依赖的软件。所以我们能不能安装自己的需求修改或者补充软件源呢?当然可以。软件源其实就是存放在固定位置的文件,按照一定的格式,记录了软件下载的网址。新的系统建立和完善自己的软件源非常重要,我们的工作很大一部分也是完善软件源,查漏补缺。       本次的项目进行的非常顺利,和华为的合作非常愉快,在遇到问题的时候,华为方面的专家都会很及时的给出指导意见并解决问题。除了技术性相关知识的学习,如何进行团队的沟通合作,以及如何理解项目的明确要求来学习相关知识以完成项目,对我来说都是很珍贵的记忆,构建的和谐融洽的团队氛围是大学中弥足珍贵的记忆。                                                            武汉理工大学 - 智能计算系统研究团队 - 胡雅冰,指导老师:柳星老师 
  • [优秀实践] openEuler容器镜像移植项目实践感受
    这个项目的主要目的就是将github上一些比较优秀的开源软件包中基础镜像为centos,fedora的Dockerfile移植到openeuler上,使其能够在openEuler的基础镜像中 (包括x86和arm架构)成功构建容器镜像,以解决原有的dockerfile只能在centos、fedora等基础镜像上进行构建的限制问题,使其可以适配openeuler的环境。项目起步阶段,华为专家组织召开开工培训会议,为我们详细介绍了这个项目的需求、目的以及验收标准等具体的项目信息。会后根据我们团队的实际情况提供了服务器以及相关技术指导,让我们可以专注于项目本身的开发。项目初期经历一段摸索期,大家合力完成一个Dockerfile的移植,记录中间遇到的问题并讨论相应的解决办法,就这样慢慢地总结出了一套通用的移植流程。中期大家就开始各自负责不同的repo,虽然repo不同,但是移植过程中遇到的很多问题是共通的,首次碰到问题的同学会把问题和相应解决方法记录到团队的共享文档上,当其他同学也遇到相同问题时,就可以按照前一个同学的解决思路来处理,如此极大地提高工作效率。当遇到棘手的新问题时,大家也会聚在一起讨论,群策群力,集思广益,就能很快地找到解决办法,因此通过团队成员的通力合作使得项目可以顺利完成,甚至实现提前结题。通过这个项目不仅让我对linux环境开发更加熟练,比如docker、shell脚本等,更对linux的软件源有了更深的理解。之前在linux上安装软件或者配置环境都是按照网上博客进行操作的,成功后并不会去关注每一步的原理。在项目移植过程中遇到各种软件源/包等问题对此有了更加清晰的认识,每次使用yum install指令时,它都会去yum服务器上搜索相应软件包信息,然后下载rpm包安装。那如果服务器上没有某个rpm包,我们该怎么安装,centos上很多软件源在openeuler上是没有的,或许这也是众智计划扩展生态的其中一个目的,去丰富openeuler的软件源。这个问题我们可以通过在一些开源的软件源网站上寻找类似的包源进行替换,那如果在网上也没有找到相应的rpm包,我们又该如何做,是否可以根据软件源码从头开始一步步编译和构建,这也是众智计划的另一个内容,构建适配openeuler的主流软件的rpm包。这个项目作为华为鲲鹏众智计划的其中一环,是华为对于繁荣软件产业生态这一目标的具体实施举措。其实中国不缺少类似鸿蒙、openeuler、红旗等基础设施,也不缺少类似mindspore、openGuass等优秀软件框架,但缺少相应生态的开发者。目前中国很多技术依赖的都是国外的生态环境,一旦国外企业对我们实施封锁,很多软件就无法继续使用,比如前一段时间谷歌对于安卓框架的限制。所以鲲鹏众智计划面向高校师生、企业和个人开发者,以项目合作的方式来邀请广大开发者加入到鲲鹏生态建设中。其实很佩服华为公司能够有决心去构建国内自主的生态环境,摆脱国外企业对我们的技术垄断。我也十分荣幸能够参与到这一个项目中来,能够贡献一份力量。武汉理工大学 - 智能计算系统研究团队 - 张敏杰指导老师:柳星老师
  • [互动交流] DevCloud凤凰商城,构建phoenix-sample-ci项目时,镜像自动提交SWR上,镜像版本和更新时间问题
    DevCloud 在构建凤凰商城项目时(鲲鹏实验时候发现的问题),构建phoenix-sample-ci项目时,镜像自动提交SWR上;1、问题:正常是不是每次构建SWR上镜像版本会自动+1?但是发现redis和postgres版本始终为1,其他会版本+1;2、问题:镜像更新时间问题, 我2021/5/17上午11点更新的,然后发现SWR上镜像更新时间为 2021/05/17 19:34:1以上不知道怎么解释
  • [互动交流] 通过maven推送镜像到SWR仓库出错
    1.起因客户的代码环境均是在本地,包括gitlib仓库也是部署在本地;客户希望通过本地IDE环境,在线下实现代码开发,并通过Maven的maven-docker-plugin插件,实现本地容器镜像封装,同时推送容器镜像到华为云SWR镜像仓库,尽可能的实现发布流程自动化;但是在实现的时候,往华为云上推送镜像时,一直出错,无法成功推送;插件推送时,报错信息如下:[INFO] Pushing swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0The push refers to repository [swr.cn-east-2.myhuaweicloud.com/busyfan/my-web][WARNING] Failed to push swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0, retrying in 10 seconds (1/5).[INFO] Pushing swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0The push refers to repository [swr.cn-east-2.myhuaweicloud.com/busyfan/my-web][WARNING] Failed to push swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0, retrying in 10 seconds (2/5).[INFO] Pushing swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0The push refers to repository [swr.cn-east-2.myhuaweicloud.com/busyfan/my-web][WARNING] Failed to push swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0, retrying in 10 seconds (3/5).[INFO] Pushing swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0The push refers to repository [swr.cn-east-2.myhuaweicloud.com/busyfan/my-web][WARNING] Failed to push swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0, retrying in 10 seconds (4/5).[INFO] Pushing swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0The push refers to repository [swr.cn-east-2.myhuaweicloud.com/busyfan/my-web][WARNING] Failed to push swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0, retrying in 10 seconds (5/5).[INFO] Pushing swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0The push refers to repository [swr.cn-east-2.myhuaweicloud.com/busyfan/my-web]Failed to push swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0, retrying in 10 seconds (5/5).Failed to execute goal com.spotify:docker-maven-plugin:1.2.2:build (default-cli) on project docker-plugin122: Exception caught2.对比测试整了快一天了,死活是调试不通,一直以为是自己的配置文件有问题,各种查文档,各种改配置,都快崩溃了;快下班的时候,突然想着,要不往hub.docker.com上推送一下试试看,没马想竟然一下子就推送成功了......实在没想到是华为云SWR平台有问题啊。。。找到问题所在就好办了,换到华东-上海一地域,也是一下子就推送成功了,了然。插件版本华为-华东-上海一华为-华东-上海二hub.docker.com0.4.13推送成功推送成功推送成功1.2.2推送成功推送失败推送成功上表是各种测试后的结果;因为日常默认使用的地域就是(华东-上海二),所以就被抗了一天时间;没想到会是SWR平台的问题,是因为前几天使用0.4.13版本的插件,是能成功的。3.pom.xml(华东-上海二)      <plugin>        <groupId>com.spotify</groupId>        <artifactId>docker-maven-plugin</artifactId>        <version>0.4.13</version>        <!-- <version>1.2.2</version> -->        <configuration>          <!-- 镜像名称,由两部分组成:       1. 地域endpoint:swr.cn-east-2.myhuaweicloud.com       2. 该地域内创建的组织名称:busyfan -->          <imageName>swr.cn-east-2.myhuaweicloud.com/busyfan/my-web:1.0</imageName>          <dockerHost>http://192.168.10.84:2375</dockerHost>          <baseImage>java:8</baseImage>          <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>          <resources>            <resource>              <targetPath>/</targetPath>              <directory>${project.build.directory}</directory>              <include>${project.build.finalName}.jar</include>            </resource>          </resources>          <serverId>busyfan</serverId>        </configuration>      </plugin>个人猜测,大概是因为(华东-上海二)目前已经不开放给新用户使用了,所以该地域的很多服务,已经不怎么更新了;所以这就算是个BUG了吧。
  • [问题求助] 有Docker容器镜像加速的服务吗?
    有Docker容器镜像加速的服务吗?
  • [技术干货] 【基于华为云DevCloud的DevOps流水线体验Codelab体验分享】
        整个codelabs下来流程还是比较多的,DevCloud具备研发测试全流程全周期功能,是个非常庞大好用的工具系统。由于文档跟不上系统界面的迭代,会有一些界面、操作按钮、和运行流程有差异,以下记录下整个体验过程,欢迎大家伙一起踊跃讨论,互相学习。新建立DevOps全流程样例项目后,系统会生成一系列的体验所需资源。第三部分:使用持续集成,加快代码质量反馈速度1、先激活容器镜像服务,用于容器镜像的生命周期管理。2、编译构建编辑任务参数设置里面修改dockerServer、dockerOrg参数值dockerServer获取方式:SWR控制台,左侧菜单栏选中总览,单击上方登录指令按钮,会弹出swr的login信息。最后swr开头字符串为服务器地址。即参数dockerServer要取的值。dockerOrg获取方式:SWR控制台,左侧菜单选中组织管理,单击上方按钮创建组织,创建的组织名称即为dockerOrg的取值。3、构建结果,耗时8分钟左右4、配置持续集成并通过提交代码触发自动化编译5、使用内置的Maven任务改进自动化编译第四部分:使用持续发布,在代码更新后自动完成应用部署1、购买ECS2、获得公网ip3、ssh工具连接ECS4、ecs下载安装环境5、增加安全组规则,以便后续网站访问6、持续部署配置7、部署完成8、打开商城测试第五部分:构建持续交付流水线,串接代码托管、代码检查、编译构建和自动化发布1、创建持续交付流水线2、执行完成3、增加质量门禁4、健康度整个体验到此结束。确实看出了华为在DevCloud上投入的心血,真正是一个集大师大成之作,对于研发效率的提升非常明显。祝愿DevCloud,祝愿华为展翅腾飞!!
  • 如何进行虚拟机镜像到容器镜像的转换
    在ARM迁移中,合作伙伴只支持虚拟机方式,我们的平台只支持容器,请问有什么方法将虚拟机镜像转换为容器镜像。谢谢
  • [热门活动] 【你问专家答】与技术大咖的亲密交流之旅---#容器镜像服务#
    本帖最后由 西西 于 2018-3-20 10:54 编辑你想不想和大神来一次 “亲密”的技术交流?你在产品使用中是否遇到了疑惑?你有不吐不快的话想要向产品经理直接诉说吗? 现在有一个机会让你直接和产品经理对话! {:9_88:} 本次活动除了有和大神探讨哲♂学的互动机会 还有0 元抢购+1 元试用+免费大礼包等等福利派送~ 华为云应用服务特惠活动,开启应用云化新征程活动传送门 活动规则 1.活动时间:2018年3月14日-2018年6月30日; 2.参与方式:第一步:未登录或未注册用户,点击活动页面右上角“登录”或“注册”完成注册或登录;第二步:进入对应产品论坛版块;第三步:在本帖盖楼,直接抛出你的问题,发表问题后,请耐心等待专家进行回复; 3.专家回复时间:工作日8:30-12:00、13:30-18:00,其余时间,等待下个工作日进行回复; 非工作日所提问题,专家将在下个工作日进行回复;
  • [互动交流] 程序猿们,容器镜像了解一下。。。
    以下是华为开发人员针对SWR应用中出现的具体问题做的详细解答,希望可以帮助到正在使用中的朋友!{:2_26:}1、 Q:什么是容器镜像服务   A: 容器镜像服务(SoftWare Repository for Container)是一种支持容器镜像全生命周期管理的服务, 提供简单易用、安全可靠的镜像管理功能,帮助用户快速部署容器化服务。2、 Q:什么是组织A:组织用于隔离镜像仓库,支持为不同用户分配相应的访问权限(读取、编辑、管理)。3、 Q:如何安装Docker  A:http://support.huaweicloud.com/swr_faq/swr_faq_0003.html4、Q:如何制作镜像压缩包A:http://support.huaweicloud.com/swr_faq/swr_faq_0004.html5、Q:为什么通过Docker客户端和页面上传的镜像大小不一样?A:使用Docker客户端上传的镜像每一层layer进行了tgz压缩,而页面上传的镜像包是经过docker打包的,每一层layer只进行了打包,没有压缩,所以两种方式上传的镜像大小显示会不一致。6、Q:Docker客户端上传镜像失败?A:若用户使用未创建的namespace上传镜像,返回鉴权失败,可能是该namespace已被其他用户注册,建议先创建namespace然后再上传镜像。7、Q:如何解决内网下载镜像失败?     A:http://support.huaweicloud.com/swr_faq/swr_faq_0007.html了解更多容器镜像服务请点击:http://www.huaweicloud.com/product/swr.html若有问题跟帖回复,快马加鞭为你解答{:2_37:}
  • [互动交流] 容器镜像只能登陆才能获取吗
    申请了个账号,上传了自己的镜像,在不docker login的情况下无法下载。也没找到“设置成公开、私有”的按钮。 不知道这个该找谁?
总条数:69 到第 页
上滑加载中