From f34af1bc58625de1026fee57e1dead077f7829f0 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 9 Jul 2024 09:15:41 +0800 Subject: [PATCH 01/12] golang: support version 1.22.5 on oe2203sp4 --- go/1.22.5/22.03-lts-sp4/Dockerfile | 30 +++++++ go/README.md | 122 +++++++++++++++++++---------- go/doc/image-info.yml | 90 +++++++++++++++++++++ go/doc/picture/logo.png | Bin 0 -> 28622 bytes go/meta.yml | 4 + 5 files changed, 204 insertions(+), 42 deletions(-) create mode 100644 go/1.22.5/22.03-lts-sp4/Dockerfile create mode 100644 go/doc/image-info.yml create mode 100644 go/doc/picture/logo.png create mode 100644 go/meta.yml diff --git a/go/1.22.5/22.03-lts-sp4/Dockerfile b/go/1.22.5/22.03-lts-sp4/Dockerfile new file mode 100644 index 00000000..e5d29b20 --- /dev/null +++ b/go/1.22.5/22.03-lts-sp4/Dockerfile @@ -0,0 +1,30 @@ +ARG BASE=openeuler/openeuler:22.03-lts-sp4 +FROM ${BASE} + +ARG TARGETARCH +ARG LOCAL_PATH=/usr/local + +ENV GOPATH=/go +ENV GOTOOLCHAIN=local +ENV GOLANG_VERSION=1.22.5 +ENV GO_ROOT=${LOCAL_PATH}/go +ENV PATH=$GOPATH/bin:$GO_ROOT/bin:$PATH + +RUN yum update && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ + curl -fSL -o ${LOCAL_PATH}/go.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-${TARGETARCH}.tar.gz; \ + tar -xvf ${LOCAL_PATH}/go.tar.gz -C ${LOCAL_PATH}; \ + rm -f ${LOCAL_PATH}/go.tar.gz + +RUN find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}"; \ + touch ${GO_ROOT}/pkg; \ + find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}"; \ + mkdir -p ${GO_ROOT}/bin/linux_${TARGETARCH}; \ + ln -sf ${GO_ROOT}/bin/go ${GO_ROOT}/bin/linux_${TARGETARCH}/go; \ + ln -sf ${GO_ROOT}/bin/gofmt ${GO_ROOT}/bin/linux_${TARGETARCH}/gofmt + +RUN mkdir -p "$GOPATH/src" "$GOPATH/bin"; \ + chmod -R 1777 "$GOPATH" + +WORKDIR $GOPATH + +CMD ["go", "version"] \ No newline at end of file diff --git a/go/README.md b/go/README.md index 0359002c..c2edda4d 100644 --- a/go/README.md +++ b/go/README.md @@ -1,53 +1,91 @@ -#golang - - # Quick reference -- The official golang docker image. - -- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative) - -- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community) +- The official Go docker image. -# Build reference +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). -1. Build images and push: -```shell -docker buildx build -t "openeuler/golang:$VERSION" --platform linux/amd64,linux/arm64 . --push -``` +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). -We are using `buildx` in here to generate multi-arch images, see more in [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) +# Go | openEuler -2. Run: -```shell -docker run -d openeuler/golang:1.17.3 -``` +Current Go(Golang) docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. -# How to use this image -## Start a Go instance in your app -The most staightforward way to use this image is to use a Go container as both the build and runtime enviroment. -In your Dockfile, writhing something along the lines of the following will compile and run your project. -```shell -FROM openeuler/golang:1.17.3 +Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language. -WORKDIR /app - -COPY go.mod go.sum ./ -RUN go mod download && go mod verify -COPY . . -RUN go build -v -o /usr/local/bin/app ./... - -CMD ["app"] -``` -You can then build and run the Docker image: -```shell -docker build -t my-golang-app . -docker run -it --rm --name my_app my-golang-app -``` +Learn more on [Go website](https://go.dev/doc/). # Supported tags and respective Dockerfile links -- 1.17.3-22.03-lts: golang v1.17.3, openEuler 22.03 LTS - -## Operating System -Linux/Unix, ARM64 or x86-64 architecture. +The tag of each Go docker image is consist of the version of Go and the version of basic image. The details are as follows +| Tags | Currently | Architectures| +|--|--|--| +|[1.17.3-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.17.3/22.03-lts/Dockerfile)| go 1.17.3 on openEuler 22.03-LTS | amd64, arm64 | +|[1.22.5-oe2203sp4](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.22.5/22.03-lts-sp4/Dockerfile)| go 1.22.5 on openEuler 22.03-LTS-SP4 | amd64, arm64 | + +# Usage + +Note: `/go` is world-writable to allow flexibility in the user which runs the container (for example, in a container started with `--user 1000:1000`, running go get `github.com/example/...` into the default `$GOPATH` will succeed). While the `777` directory would be insecure on a regular host setup, there are not typically other processes or users inside the container, so this is equivalent to `700` for Docker usage, but allowing for `--user` flexibility. + + - Start a Go instance in your app + + The most straightforward way to use this image is to use a Go container as both the build and runtime environment. In your Dockerfile, writing something along the lines of the following will compile and run your project (assuming it uses go.mod for dependency management): + + ``` + # Dockerfile + FROM openeuler/go:{Tag} + + WORKDIR /usr/src/app + COPY go.mod go.sum ./ + RUN go mod download && go mod verify + COPY . . + RUN go build -v -o /usr/local/bin/app ./... + CMD ["app"] + ``` + + You can then build and run the Docker image: + ``` + docker build -t my-golang-app . + docker run -it --rm --name my-running-app my-golang-app + ``` + + - Compile your app inside the Docker container + + There may be occasions where it is not appropriate to run your app inside a container. To compile, but not run your app inside the Docker instance, you can write something like: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 go build -v + ``` + This will add your current directory as a volume to the container, set the working directory to the volume, and run the command go build which will tell go to compile the project in the working directory and output the executable to myapp. Alternatively, if you have a Makefile, you can run the make command inside your container. + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 make + ``` + + - Cross-compile your app inside the Docker container + If you need to compile your application for a platform other than linux/amd64 (such as windows/386): + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.22 go build -v + ``` + Alternatively, you can build for multiple platforms at once: + ```bash + $ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 bash + $ for GOOS in darwin linux; do + > for GOARCH in 386 amd64; do + > export GOOS GOARCH + > go build -v -o myapp-$GOOS-$GOARCH + > done + > done + ``` + +- View container running logs + + ```bash + docker logs -f my-go + ``` + +- To get an interactive shell + + ```bash + docker exec -it my-go /bin/bash + ``` + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/go/doc/image-info.yml b/go/doc/image-info.yml new file mode 100644 index 00000000..64203ec3 --- /dev/null +++ b/go/doc/image-info.yml @@ -0,0 +1,90 @@ +name: go +category: others +description: Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + BiSheng JDK镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[1.17.3-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.17.3/22.03-lts/Dockerfile)| go 1.17.3 on openEuler 22.03-LTS | amd64, arm64 | + |[1.22.5-oe2203sp4](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.22.5/22.03-lts-sp4/Dockerfile)| go 1.22.5 on openEuler 22.03-LTS-SP4 | amd64, arm64 | + + 注意,以下`{Tag}`的值按照需求,替换为上述表格中的tag内容。 + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/go:{Tag} + ``` + +usage: | + `openeuler/go`最直接的方法是作为构建和运行时环境,编写类似以下内容的Dockerfile代码编译和运行: + - 运行Go实例 + 使用`openeuler/go`容器作为构建和运行时环境,可按照以下内容编译并运行项目 + ``` + # Dockerfile + FROM golang:1.22 + + WORKDIR /usr/src/app + COPY go.mod go.sum ./ + RUN go mod download && go mod verify + COPY . . + RUN go build -v -o /usr/local/bin/app ./... + CMD ["app"] + ``` + + 构建并运行Docker容器 + ``` + docker build -t my-golang-app . + docker run -it --rm --name my-running-app my-golang-app + ``` + + - 编译Go项目 + + 在某些情况下,在容器内运行应用程序可能并不合适。要编译但不在Docker实例内运行应用程序,可采用如下方式: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 go build -v + ``` + 这会将当前目录作为卷添加到容器中,将工作目录设置为该卷,然后运行执行`go build`编译项目中的代码,输出为可执行文件myapp。如果项目中包含Makefile编译文件,可以在容器内通过make命令编译: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 make + ``` + + - 交叉编译 + + 如果需要为除去linux/amd64之外的其他平台编译应用(例如:windows/386), 可采用如下方式: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.22 go build -v + ``` + 或者,多平台同时构建如下: + ``` + $ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 bash + $ for GOOS in darwin linux; do + > for GOARCH in 386 amd64; do + > export GOOS GOARCH + > go build -v -o myapp-$GOOS-$GOARCH + > done + > done + ``` + + - 容器测试 + + 使用以下方式验证镜像内安装的Go环境: + ``` + docker run -it openeuler/go:{Tag} go --version + ``` + 例如,`{Tag}`为`1.22.5-oe2203sp4`时,返回类似如下信息则证明环境正常: + ``` + go version go1.22.5 linux/amd64 + ``` + +license: BSD 3-Clause license +similar_packages: + - N/A +dependency: + - N/A \ No newline at end of file diff --git a/go/doc/picture/logo.png b/go/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7931b692996253a04a7088f9a5d7513e823a08bf GIT binary patch literal 28622 zcmXV12RzjO|ChZTl0A+yB70`$%rjE5B75&WvgJCvILRuKi>xS>&4uhJGP74!oK3|4 zec#{zQIAKD_`KKa{hH6$^PP0(whj#?8zlh&0S!V|)0lvOxQ2k>N(VV9_=!yQ5*hf1 z*j3$7oq*u|Q>t@&67YW>M_pq>0)lV>0)kj10l{DJqu4b9f?x>(f(<(Y0>vBx0%pG# zjdzv7FGwBqbumlx7kT_^co_)lI^t{>+3%S_l6-*&Y8qjcK}bqz%!#mY+=2 zMwm>6oDxW*BwvKz`Wk2Tad9Y)QT|ophtAaJl#7JI@Y!${>YA%4T{sF%yBp@RenGz|PLdql#hi^h}>|B$BLkSltU2K7-lkcXlU zll-OP$~qo)X%* zv(a`^vQx72e5FdnQ~;|%viR_q=*RMR)*uyq>_bNQqBC{Tu$G+vMn?Xg{dnbY$*Skg zH%-e}m-&^U^WslUbZb|_lXey1%}>TwZQzL|88F2CRRXYH+5?>-1@!bgtO)rQ#rwxB zdBW#XZ65m&KNUYB$p=Pg8x7BWYZv_Ii}=rJ40Q%F4&)d*Y>+j~xVabsmeQ?lK0kgx z3dxq_&(FCsb&Vg_`~83w$dC-|vCYcDHee#3En;|+&O@!UzdGi?nFF`V+1Wo_$M64LyZB2hcF z9i1K8UwHT>b_ENEpI5lLA&fH~)VnbdWyf=ld-Mzvyd1>~-fQ9lY1uRe!Bf84Qh6Gr;LslcT2TlQL zt!HF$zbK|j7eXAG({g5SS2n#oLPh*ry~7^>G{e{|cy2F%MLCwmhRXlaHRPvh#B-u- z`ug-cF;{9sBfrDYQpJ3$uR|RTt3V43XXbr#8v2P=(@mHfv%L&CCgQOLo%Lij(#SutFZ}y_2zoS{lXD&*&`mGK z){k?v-pm7S!B`IesD(n0NeRg`l!-0ogxDUb+d(A@z9CnvFXXI^zgpaxKws1|XS9%S zkqi*X$s1@zTx14Vq7t$%^ck#14_WY;Rj5hLg5hih|Yg38D^ z(S0Qqp^B1|`H*Acqu3gN3_E5b&((b z{yyb|>NCd2@9_As)D)|mX#XP?iw#q(`j(xeF?+O&6}<4frsLf<%!3|t zyPz3i$-#xgBRP>#u`_Xs9d4YYu_6=?I_+|FB9=G>e(Z;;!w|;K>-FAI?d7>h39_&h zrSo##3^LvJY8Gm>*DVV+@w%+?@&YoAz!B~Y3w@$)w`i@CV!@gVLMY{Sj zUb=dIQ?JA2UPMaxDZ~-Q?P}l6ve25Zqu%43%D#oN4X0%d0;RUZNf}U4-dq3O(s|-e zXvL-(o-v9o!z{Hf`*y#P{7?LOK@c1lIT_)h_FWqNq#HaGb8kNF3J03V<3-HW@#t&* z`^Ie+xB}OrOuVl6Iz729zxT=eW08!$R~4m?(<9_1xk$V`AkN=SvArMVY?eo;Dl+k* zK-=*G&B?-XB7{@7d!&w8NPg(BojKrs5-*D3-L&{X(K}y+jo{h#fl$P5QY^6F@X6_( zPR}b2$GbsySY!B6>~uGji*lKoH*JbPJvtS*_j|g<-{}LF_s%pat}Y!6a^nkbPSNXv^}EyLdq4vmT|` zUD6C~FM7mz^RI%w|J+0H`i3VABS`Na*mONB%IH(3Y43ZEDO`;t=64P|V~7|BapYA6 zERXSBYr^$Xch80|SF=7_fnaS@S?p?sUZ%oE#3{z>I>Pn{I*p`DPj5K(c#n8*W*)SW zEeghZ)9_~bZ8EMsns#-cSq}*`A;sT_%Feu9ufQ^?8X~oO=^n`&J;i4yDu+bfxFhRr zIh0f>{!Y$VB)LcpWD-r}M4-{xEC1%^6K9_1I(pp%qNT7?w->G$aimzF!kWbEGOZ)X zZ5LNj+^1`S&TyS*W;E`4VVFqT`<@t{=qH~`YFmDsP2hE~@AG4-%`m5ZI(mhq9#Ybb z@^)K_U6qe=bIz2bn0M{e4$2wWFI=?*O@>nw|7`W!JDGqBOKqu)*!XPpK$ zeJMy0nLJi9VpudaDR#JZTkN!%jy6NslJfjfR&e1WZrv!aIP$@DJ@f}xb$k84rvjZF zGuQM+#V+FhF8>?wI)5r^@=0;O8j8C)@7ne*O#2R8>)(kzSzb^aT8-<`GL9-0LsxAN%hd{8N4Tx6mfP$S7Jy zk`~U0X{AulC|c4#kBkjFQkuTl|10P6Ae`6l#vNBk+3EwD-ZM8(p`6zzcw_Xq2hyE@ z262WZ*I0kj3@PX9l97ow(|+f{nHJi$GA(Yd^C58$?Ns7*Wxe?&2M@g}|I6yiRXA0e zGGT4RM-r%K>((>1_ggnuo=kY>ipmJAb|Ig)@=@$oV9mgUE5ZRB+b!>t>rLh3U}Y}& z+(bmMP;=h#)*uf$mL1V?V~Tx8;&Gpc&B7sOSLvkx>h=Btq#uWO+V32Pga5Xu5o*uv zpiJZ@fx<9{J%h}td+zg>-02Oz%0|B1G#hbu_!3!L_FKV4PSrW(u89m-rra7VQ&Ae3 z#G*z5BhC1DExz-FWL2ini!w{IdxnuhUrl4a78@3?8y?rBo7v&+TR(i2ZwUkdla|Ik zU((xTpJh=P=wF(p?3TiK*BkPWlj~I!Sx%reFC}4B9RwNG^z3aLG_wgqz)H*hzK9qh zO|8CE^}|TQ(y*T}>(GyN)4r5xdOG$I@bippDm}Im5#5o{k=Z@pd(4RV`j8*? z`--?c3UjwU8+J2sl14rc-Z6%ECfrceC7FR-BF3IdSvxghWGwQ%Br4AU#QvKWWd_mh-_p1brD#<=7uprMX16ktehdY{{ACAb3?1(W+?7YJisQ3xlZT4o zc?k3zK@*#X@x!ly6KiqB6ET-ptemEst@3oqVrZJ%SVD&pH!F$($9#lHQ?IYRL z1(Y1_V1!rztK>^WM8C14Q_sUFc4@JH{C+i(Fw@vy(3^>$QID?Ul}}h5Tq0V5d*T}l zTDXS^v#w72UdrJ=UAjEa!ivG&iuiEoN`fu$~7biGRUj^{<0lmt+5v&@`= ze^tw9$@(TZJh`KgflUhQeT6B%D#l;;I_-XhazR<>pGVoSEJN1|L*i&6FE?t$=yfr> zVzR0KF36c}_p`8^A0|J)}MOP@r-XHO;IF#SO>yD!9tYlo7NHk5+3=7)B&*(3)Wqzw?BIVJ6 z_}x~D7eF~=o7EfhpUDr;PMH77w??4#>}{g?jIYfX_wtXv)1}^VyuFlL^7a;|$~|55 zer$Xi^g0n23^Cieg<|(Sq)`N_mbLiGUI)EQhkXKsy7U*(Zk00=mU~@T_ZVH3MASwE z+#qI){3+vb-SE`;)4a$~F*}6u-Qa^ihG-jdFAr)2>n;paT~zg^`zq5b=}R`k{TW(B z-H@-8&fDl+3>ULFt8eoADO#o{f}OPl*>RZ4d^mLs zrYUsDGW;IiK#Lh2U)B0a`6+^6fS9!AMvZ@noHx;Uc3)@UN7kie=RM`t42)})5p|5y ztf=9qJybIpQ0uE?o|4~RUQ!?(Q=y1UYx%wFt1?mD5NE$#^zMxvH7ar&9M>e*&y^MZ(UC$1rOK942ipA}&bPTlN@!z;{ z$-r!~@pdcO z@$%CM981f*FXty2rvXHvadq*15EHGuCVkLVw#44KSWa*vzN?ej4~(;n1`ZkEh+zmV zn~znY)8S5B6d2I)IaOv$E5fnxx^^SyhPwbP23qq*5>`eIKc}wxHdkJry=9yUs~S0H zFOgJOc#0Ll&o{f-`sB-jEZ*~VNdO1K+s&Qi{jpa z-jr5YFy^p947<@W9`V9#$zWqn+k%F+z)QA?{CkYIgqDe~`dzh=^Stu}0Oz9D z;^HZ38kr4flN>8*Iwo+ahv2=jaKqQi$_UW}qnHn9TTC`Y4_#2rw`w8hM@w4`D?1^~ z&w#1PcPa)kA3;%6eqsEGl@C-)WP^@Am20dSAU+OX4x~{a7H$xNoC z|8Gcq7*t}C1#O}o7eCRk6PWdnfgeGbC@E2mljhZ7*FfuSQ*4liEc|Jj_D*&MS3}f$q}OW0-5-T5U5~OxdRf3yd`G3o13EF(2+1UNlN4{;(Ay8nFF91hrYk>7lz! z;B13M#l97Nk^X2{F!Sw4xa%6a#;hc>Jl(lD$`6xeH~ee)rsW3y zduMPsipYKlTE=Be5D}Bp8>)JVa)%McJo>&|7Y8%V^CNtDI>~gH{6Gl(>@MeN6yk(Y zVwMFhGZwL8FHn`%)<1Bjvf0&Zz;-NX$IaXdGu`T1_YY`b9mtEe;%{af!lE%ZHrCt) zx+8&B7&|BK>I5Aa^maz5c;8jY?6QspnqPj9HX=hxHt4+2-l!KQ3-tWDXJbSi4?;}f zLmW^72QPheetq${HKw zJ7wwfb~1D#>yiP-#QX_nniXwqV+hJw$5UQqB9I%u2Kpd-TBiW+K+lw{_i565xtQMR z$+O#b?^5og%WtbtxcaYhGIs500prG0>Qa^x_(~&TrXR<_WxvadFb7_c4{5u=#Dg}e z%DeBolH_S1!J*DscGsuzFB`@BD99Gk%EIcdjj{$Hl(Of+hs|h~ zp@1lHgsA}Tx?=d}s*U6C{>PeKrENqZL2-J<-@IOh@E}^{uGvl!u_4M$sjm5wBIG50 z0G$mM$j~o8-kNNXgx(L~$}n#d;xAi`%-Nnb&pJy1riHN#0^q~nO~u$M;3!Om_Xgi9 z+!9KDNi`RD62kl%Hi|*AM8kCkvW`>q&>lmmd$+IHxRN8vLl*K)kI_n030Js7ClSVm zzcOK$MIU_Vy~Pl+B~8aOoqo@uurh7fuHk^sg}!O?*u$u%j1qIA%m;pGll=l%r?zGO zj!6IN_gS=w2B>m*P$Se(ge(l@3vpbzTx=+I)ff)q0)~5CWQ-40oxPa?sy2+JqaNR)?n{C2OjKNLxlk?V<6F6RK*KRzp(9vVAX#tu<`uOD1 zqQ2&xgYDelsV_rV3Kb}=>K^khbgxWk|2HoVcWsXJ2we4O<;$?3{SJ}6tl;CpM}Ch| zbkS0tu3VFg6UH(0zKddr(RWHQLK%THV6!`Ba*b_C|Bkue=9vE+9U<&hi@h$!h3NYz zs5=oiY54Tn22~j8bC_u@I6M7m0~B_hF=YA2w_hTwqc?;M9)HKXe}>8-o3n4m`QsjaI{oeLOy$_ zvyX1~az!Y>2>dA01MljhZS2xvbyT&XeavT!5%@jlKRkVzxWEkbbHJnMjo*Au4S$QWy@Bf-xdUhNW&yA z13Ny4=@-}_JF9d40*{V|A7weso>%{zIi_?7=a(4VVj$>`6D-^xTJk)9s|#=ct0_Rp z80(Hjt=<#BZ0SUdtZ4nx|M(VW8uz5Y8-Zq@UbsusKxaXGgSS()XJ&97>;17#+465; zX_KIFU8Laf#4Q7M@*;`}R<|!-o|pF%xHl605xo>!H^1rH8*Z@H#??+MV6I(B=mWjO zLlX+A&rYAEneMjR_K`asBHC)Z#3rhpxuaf-`5? z;m&Bv`Qw|0zQSXrfw89Rc+_{RkfJC9>jE$sXIXa(?2E3!^6*hA=CR$L)fkc^fBJGg zQKEN`!bEEl@3bWX7}#XGLK$o(l{<_H$3|F9YC}@_d-2|5ZjQ+8n}&kVLSket*?D(l zK70IZi}Os{wIodG9X6}>$~;{Xo0=UXd)BwyEs1*_hyto(YO>o z+j4FCS;y26WIG?+d7?;eC}wOL_u6`U+YZC|sKjJXxp6<#hIWAxe!?CfKW?@nZZhWbW%1iubp%yL9etRz#HiLgN|{@UO2bo; z<8SGfyzbjKQZ~Vxr#MNPztl7Tu0k%};uo65n%*%l@3OG&F9b0ZoV+x58auRQFZ=Xlg1Rnra!(+ahty zgfTAgZDHCMt-_2u&Bd-9!S=Sp5{x-SUK@4s!aCP;?ui+R#BP6N#v$i%FR@yGlOlT?nH> zl49t1gD_j;g!So-mqVZ|HI&i>VMBlJ3v8XD6K5I!_CT#_w|2l?b<#WCV}f$t*kQ}5 zeNT+G;QchL1HcX`NIJrV1yN6vXgc)mNgo*^S2ByNS4}l)k{2W~{rp*X6i}bL?o}+l z37>vN2PQ6^>I`T2Lnx!qM zK%;{9X0@;52H8_Vif;NzERS$89VkHe>A8PQ`c{T|;2S;lToauv#!19tt|3borvB@8 zIv1m`a~iTKHunD5kutiuT`pdJiI`qmYT8H+1IKevvKRiXFzQha*86v~kheSL`>zinln{@6uDHHUlNnb`jLsmd6RC&Xr9p;+u!nS?x>mSz5994$zv+k-TsvFMD>TvCBr9Z=(^xQh72yHPa+0`5->q`>pcd zq!)TI0ch6;rtL$Qp#1(f7weaE=3<#*V+Vzv=lbi5U;i5w+Z<`_xHJbbDpEZq0qsmF z9g_96U&#-`r7|>T#L9>Z>`phT@Tp;kYIE(3MI~gfDIFIYxfgGuSAkfx8SrUsShQWA z&Z!Ap5S}*`lgs*|1yQ@pls)QV7&<3nhwJXFsgso2Q6)4d%$CTxc#kpqez+H$HRs@< zkgJm&auW1QZ%&NqNU)2W=v&vFyChFue_A*1xbzgRCV5waxzb8&Agk*#tpl1j^{EevxogPXt7WUPsQHt3qbRUo$kQZGhkZVK8503R_wA&_Fy&-?s+c39~} z+af{5i^jb|l2&{2G7KqCbKd7Jtx^BT)b8A^uBpJ;B)ZnWH6b*DDCB;* zUi!WD8)e|nS5FFD(9;c&P`HH9s2Y18p{O$AFo+ zgjx+%QnEsJG>pWKk@;n^5I@pZD(6i3&j`1aPMXsG6AAH4rtw2eWX@4nTRtye!R&95@|U!UMg=5SkWY89*#^NZwHg+1d*X|{)4 ze5^l4BRG)Ugh`Tp8~<-M=LLWcP_btngvZG)W_Gxl+{w256AM>YyQG`dBc9jkN2R5U z5rjygP%X3wGWp^b=fgXyQ_?khqAP!%P`qK_Ztie(_x@{hSji0B6>YW2Rr&NzzMPrJ z+Uru7s#C$Bl^wFdD*`MSle3@7)HjI5pk+60!CmNr za^aroey4iu!xmrI3J>#3ZFhpjUgZzxB6!jU$9-iBw~Z3MO9={Q!h1BvSNr4I)a$R3 zirf3|r^$wD_YR&qCffTlf6`u8<>dy~sC;kje!`!>ETy91BJ742lC#YE9rSQ^4Gz1T zu-?~CevOsJ++UC0H!IB7d)FG&@gwIpH0_Z8?7TsNmBqY~B;9~lbYOppO($g!EaD@rlU0%7WMJkjoH+Tzl5FcV&Q3#YUyGDk%^$JV$tv%&AKGU zasH-Zd#&@(X>wKL^iAd59kj{kw1%fQKt9G1tuxcdm;0%Esq1^K;$B3?lDMXvM3;Ue zXFZZd%>HmgU%_jX}?V%069m0!C5}?1?uJveU1HVQ+XE$ z#@zUxb>DxTDcRF&0DyNRCXF5XK6MfWPh9<;5_H^}%yRL_C@y^A-S!Mb{ITD4Xv?#) z)ibHwq6!J3McM5$Pvkq^?u7x5#*wRR&j;HL;L6-P<8QNPZ3@+`md@@hfA}C{&%~ zQ*-0&=J?#SOGy+8Q*rzU(irc!n}%D??cW*B+(&i~I>t;- zAf1JyYfbDhoH%**t#AsX+s$a;pw{8GztkN;tnncT0XtX-9}c<(YA3nJ$u2fKphdTX z3xHP{F0&7~|2=P1?F4;}tRTlIea7{9!!RO!ni&sxq*~QC*L*nNSZ<;Ie821mo%{sc zK_=m**@JBjYSezz9ff2_j5|5a((kJH-TtSG^Q`^eMXxve+E^`aeHITMpAvmtwa&Ep zmjEDQCR6b}DdZeZE--(Ti?;K=oRkJoiVXY8KfkayMGeTT2D7OWHFruT>xh1j zYgb)HxW&niSc=UT(#HF}BmX5SG!N@Hy+qaxkNKrsHwk&ayM$~H!G7ube%UI%$Uc5p zh=;!PibMd6IRpu(Xmcn&Q~OVA;ryRo)$sq@^_X{d{+moPZwzmK<}?cTZMMKQ6z7kHESuq> zhK5~@0dGCSB6R-b3HR#CTqh3|h1dOqA?{N;=mR|iapq{SidsJ>_hXRDlp1cF>?`-&y%opeqtbHU&8|aMi9|b2tVEI?&^!Rv z$nR~loHi~JFnK}Uo}J(qMiY|35-9RM6RLP>I4*De;@0;yi=k>V<@5DImBPfdSmg4`e2|9ItdX1NUmVq?#QPK&lR7AwXsbWE z_+N=nvyl@jLssO*8O`JL#6!r|=dCzx%E~{={^MvTLG?77zgwpRZA)WG*b6)27Tv`0 zn&wLh-w@FQcl~&+zpSD zz9n6Zh&`k!a>aCF(mp?r$%7jsL;-ZF`$QUfAy}Z{IU>LHD(}bGu*R|us%Jwut;P04 z2Mlz_0Llf+Q+Z?oQ+syq2#!ocSGYk(u8_i?U1M$ik5MzKR3I7)DZg29)<&xAkZ2Ho z6EMS$rq%FBC*SCBs05Oe8cM+1=IY-8iuSS_gxr#k3U-AMVPtp?-qrG(_>2UZNu6UEU9m$>jxRn_e$Eh=}Q&b4Zogdq7Xdjm0 z*>%oxNFpe(!ayEZM}#L6E5UYL7^(L+wX()>H9+JrcB$u)zKlALn#!w|Kw|dZMYQXH zrHgQpfQd{agA{f;~2xd=_LL8BZP$<<1v z)vzy0M#?v`=md87>Ob_?6Z-chxulzz0ap%f?S-S*mS2yIO4r@#eIP3{?yG8PfO?TUA4&f5@B(L8ug$8&nk zTl7)}iTRK$32ASl$#AE8uXy^F6=pZa^^~#WKB}irF5UYw^h5!)x#Q!8EbbU*lw4sp znd}?MuXByq%yo5`L4>56guHxger1FvW5w{!33Y;;vKRS!TLS%pP8efxYUSm`YTIS# z8d2qw0?xSF-Ji~gue(=`o?HfwHcvfit>S5&{QBG;u}1;WygmrJuk9kKAS%n-{Kpth zL|S*~$JiZ$3!g-4aw8kbRJ*$u%6N>MYwa_wM`& zK3f3?+FWBLE1H4i%IfAt=gc!YVVHLc_dWTX;BYao-GfWk;RNx2*J~1HU`)R8nL%cg zq9f4rRr`&{oto3< zQ6**JVQ<|q1e8yOJ>1lH_vPY0(bQN{Uee+GchP#Uz==6H+yZl*53RB?bJ&eFblDj9 z_kUf9VCT(zSNf@FgnIbS@nk!R_S=W~?RlgYFHh^}Pb#BeS(>BPs%!tMrOFcuv_ny_ zw3k<=V(k)dY>Rvqr-#cRWi074qV@>m9lj_SM{?M-Q5vl=Vl_dP%r%6sLNLoylLZ@lK@HTTIeU*XBXC z-BRv>d}@rG%z2V?Hb>yO(N}mS!cyCK-Avg=^{t1+_HIQ%lq?ER(=(7nJRAh}F^S@? zr`T{S1!s?uSp)3s#??-6#3-(c!V9_$uIdLerQ+zd&jd~YyYSS4^xu# z7DW9aA9^Ufkf(yM^Gmha_TcUB+Pa>CkvrGQ|}a`*FdN%aBZ)bCjdcteLn7)fvf___Vm&Juw7fLvxorNao!K7`N9yQC*?t=De&%4*W+?E>CLxS9D* zke!l-6Jo1Iy&*(VAewMdMnji@U>^@74De)Wej%0>!ZQXgcQcwMtrp$4Lpj=SLrmKEHAp9YkWUppxQjBggtyiFBOdQW5Sobnyi=?1eKtzPB^bhntu&Q zZB&)(QW9>MhZn?!NS8S)^j?I#jj9Fh??Z2D4)A68*s1D2GvO80s4y(KY;S(OJ_7+@ zxW@@-IBDxyx>aJv%c|`R|7%jMqwArdTS7pyG!RH7asnw zEcn3d_B;!qj@0_Rsq)WY#W3{o7sQ!n!tn_Q!SIO(pOfygxVBI{?36>I7lJ;R`(va$ zM{b-{wHDI@)&?cwI_oS}fBRXU*hHSYS>?@R3E1CDiaZSocJ z@1`osi0c`Kxu51@lHB-a=xK9O#2*SUpYycclo#>_=Pkb$dOgh2=R;^@4>%HU%EL3U z(0p~_if+R@fz8M}#$)`nH6NUuw@LY)>At(kkNpetH~1G64kz_cK*v*Jlb3AT zr3aFn-ASRX@z|;N&ULjz^t}VdOXlSc&V8UvRB=`AMG&l}3JfqD?gvgj$q*doIZ%*i z)=Q+8AVQ|TrAtY>;{<4#rh=rfph1~d^jyfB- zv&ETo&SBRG=JOu*1oKgdLn|9b%kT>y{W$LTPG=2;z-2V(zp{`o)B=_J)L1yS+5}YY zK6vF~_W|l*(2gf6I-d|IdpRO2Z+QAh!!v@JXbD3AC!}hWmr>V|$9(5swMSsgY$>EX z6?D&}(!)dps_xTstpdKj*}CQTD`qapU*31NFkweou&M}^bpm}hs`&W)g)&9i`rC%w z!Le_KH`a3DVjTL*@dw@69k1jE-pMlRuJ>I6Rv{lA*f2fXs0+E`qRGH%$8^s%TFs6d zD3RjR&*5G?X>lCCmeTkw z&Zhg}O1?8JIctyl`;J{-5>-0nj@Pl{wDCJQ+@DD1cS-MBuJ06tjjslPqcGqf7&2TV zxR;jk-c*k|ZFE1tJmSdoIkiFa2)P!zq_9icgMa;zkeY2QMWJ@$At*OoLen?$Ij#t|+5uM~(0CZ=+6;=qeMwh*?2`}T(Bv;$f*F7z` zgOLu*;u;{Zbse+tc5FOXu~0e7qOFno_yzDVs2MlZhz%r>FdAnyzJGOi(E?WWr(Uql zmJhnEWItJXYo7;#=QgJM9*)z~TF+FS3(ITL$DR7* zrj@=W?PqZ>X);cIkqPBnBoU-$F0Hch*^npN<_kQpzJkRLI^4Lz&n2aGoyR8Y7{P14 zw_pD~yda{jk+B49W%2=8B#)|vv-m`*v&(OZ#p`^j9tmG+t6}b8&jSup0o%~|x&E;n z{M+`>9Pnc@8(ErrH?jHlREeX3q+_|E1_T2215&&QvQ!DU^`7{@vcQmaQ@{Hj7^pNK!ZG>SsYIJl}DP<|*(BDSLi2E6{^o}j}m^<`_+_sgTv@-;3CqFxzhi;`A(PP;Ts2DK|cflo!X5L!DE zl?^XCw7&-`YZ<8BF|Ah6+}X@53pU$OsX;lOVwFIU zB?r(7O3;<4EVbm_G&8rDS*?hPnc(Bgixe_{w$_{9Tz_P=rC?QI_D-%JIu%IXav#l6 zLF4K#$lDGD2^qCd-j&jm^PS`^v79<9+@s(-VNF|pb;FgVia-pytP0@9Kck=6sBb1- z+;G)ijO)ZjP7tGI*uD_Cmo=Xq`9kY`ZHqTYA`~M3W?udS@9o%f!PADgeww?E0Qg7} z?56p%&Z%!MzOu$@8tz*pV^6%VYgz^~kZ6YlAGbc~p#}!^)<6;;W?R3Ke-b`YJ)Q&6 z`!D_x4cT*7JCWZ9!uN)g_lXc>=thCErl=jS2R!)}Rrhs{@>AA`W7@@1r2 zia(rmEFF*CDRcs1dMp)0^Pn(j_W5txZ{1ISU!;KiVUjU^v(-z~Pke>NSl~&AbS;0G z!e26ZsYfQH(6CcGLw(=y?Y4&y!RskH8?!%^tRm#NG@GA+i2Dei5*TMtWAfS6h2P`D z;ScE=k1#{M#sV-cE3@^nb1G3~_6Lu?3@i#5#p}s-V&kMVZZDGNarZxcBdy<(e_zCr z`J+DwhA|#{iTaXRY+iMYJ>bKCyGMPa?BFacfwib4dxu8+oDT$jsd^~`PCI9W6C+=x z2Egbcc_16snwgxKA~mKE74o9+SJU`;aJw0-{%BsM=EK+c#NZ1B7|^d_V;GVJk!*u7WlTQbd3>!5NRT89hHVHK)rQOxe2aZ{9Gf{lHVD0 zQfod4Xb-iA7lDSOAdU;j3gI<)Q-4f4-h?tf;n%Cx(Amq@5;Z_1ydGgpW-)2Cy5)pq z?x|9w%<&*c2q$4XzgQ3OFoB4!K)xfZ`K?;L+Gd1X3GDj|lfwpqNMQeT=~jzw&~GEO zUQ@x>E6+{58gR6BR2n}U8!N^RO7Za@_y%Vq?3J-V@XiZMB!UpWPG(_D5&aH8VR!a7 z2g%%K){j7=0iRI`f;{pIjeRYB0UzcMa7V^FzMU$mJWO|W<~-xfSzfPNw~URJd&8V@ zYf)u1Qm%pk9CkxpUXUa2gRdDRQ;4wdwM(9p|Y%Z!N7S`fbb=j+kmg>TKWb&-=4INQ1>g_{1sfse!s;2#;jAu9Rbv>l3^vbg*qKB0|Ae(6( zBOewL6*Axl>gl9zp-b-XeK`tJ!7Y3lYlns8DkX<~q9J&63>dZ_sscJLf;5N1v$TuV zqF?loqI%jDrENaHyWAqsH#Sr8cr-AX0SF$BsG2EKw27EM+w_NQP7J-`aS081M@P>`iLafs z@E}$cg{Z0lxDcqJ+wn}mmRNw5moH#pG5aqBe}&gU)Smn(YW>(++SWcjGcLM~6IOPE z0X-e(0^Z3+M=QZ2+n`d8Bt)6wG3!}nFlS?+MimZ`R;%nE&TXu)GOu3+x!UQd z+KNH*SbtPcs=nKt%UAuVbYNBYXM_~7edS;kf-1u~f>sJmKvYj6nbqv}-eiZfJp%7V zc@tQ9?}_xLB<$VA>t8VcI#_|X+6lb-)FALSEF^LvtYZUD3_J)MOub#wZ2%RUezEM< zAPei15?wqlAZ9=`s(I62;Z3T2n82;r|#OI#|$`kQ6S zZidNzNba7IW$BzWMnl00(T6#eH*oZOM7D9CX;Jp0T-z|jQv$pRx17lM;zY(Wos2bk zef;X}_RcYecJcQv;`Xpb%5vDv|A6+7q?~|*wY&%F4ZeGxT}G0n>q;7@-xWQ!V z+1Ht@iIil`mMn?LE`w2siHIT*A@PyOJ|RgeOQf=IC9*}x_Pb8s|Np`7!S9g=&N*|= zxtDX@*Y$qC?noIZZ(38+#0pa1zsT&x7Vvf>@nD5~@iX5&OYKi4jACwIXvI6_WM?dS zkODh}mlb1^#9ry2FL4Mjt5~s-Y%mIoiMkjNRtWrLKt{P+aJFz8%~FAAXsqSHv**6| zO<6rA_&2P?zGNrVs&=yWT}AR=UYltc`8xek&HJ}OzAV``|8D%w=c-6l+Vt3E`hll} zsYq5+6{5A*_K_7nQT)gMT$YdN#KIYRfsnq?zZ1G&&~2jSLGsxt>~X|7=Vlv({yk zHi`ESyHCK-z^k$>-#z$cm|ffBWmFrCJ#aUL(%%hef5o1otK{lyil3~ANlwDpRJXl! zT2XelEK068!8tUDx~E8S(ujH)1(9bVtDj=#D6;`n9JcR8wJ9n*5nr&{R7FaDr6KEU zpAY-dyPdI};A2!^OFNZj;^|ih=Yiq7a6uiw6XV)YhbUn+UvoHH8VQyc(N!gVybZW_ zS(wkG_3rie_Oq^>i0`Z`_ma<;~nuqr^=eYOyK)2)m*X<8Op-TB~DDI9dlt^?ET{CYN!V!RW>13y$tt^W5O zgDn0_m?kJ zj**waY9E<%L_QARIDD0F5tRwU>_Z<7IVgv1F`VLts*D_nEt;;1HDe)eESl)|z! zyehM5W&0DW`YMF3s`_bq(I0ABA3+U z`I654wJm zXoP3p6zp=r%phsD??%@|$(cLejf<7~Fq~zXm&v#i-4O<%$Jx@*AW(UeU~!)N z-1S0w8A4gGs_*A;x`$b#$>IFl;!AIn^lax9O3RP2WVY#svGRt;1)KVEsql1^xjZp< z%0cLydJA7(Cse0jBR0U>qb3jx^cx1=c;lg72QE5nDr_ISDBA1?0zCz)UsMaEJZ(v zYhzsD-Mq!4ImUcOqUGqI1Ol(HXy~G|yOoK%GR~#oX$qxNH~UZ=QQQ@OufMyLpe-LO z<=_#ijM-!U&Jy~cBa%0H{r6&IEP+EO+uoV3+-CY{{pylDvFj&Tk1N$3s6zPD($7sa z1^y9oX0Unsq1Bo014H<7w1a1={m90xEhZ$Rr4!cHL^&MaqkiAq*0F%!n&&X?O?rk0 zXGjySFo|WNIB-o-K##k)Y-5TTqHO8M+7vSKdJAz>;j|ya=j88^kF9<6rZH<8psl?j zX>En0C%4KnR`cs~$lb%<`v~^EdwSf@AN>3f#n!s9oNH_ME|>`yUN)5X310H9Eh$Rj zhC{26>4od1{MM7PHEdfTROc_XOzn!dE9SfHYW~}TEx$?~ zd@G+v(<5CA!P1z=fUuveu8GfI5mWxhy* z;8$VOCE@j<#R|^jOQ1qY9XvHhc>MPh^yRrNZ$rQ7XZd!wv2`RQHepU4YK;q;X8t~| zS+Q0vVfGO7tGqo#`GMxX2XltK$JlvH9sM#P3w=|&|Eqn~6hwgJHG52O;vq%W^Ek^5 z;}1<B~NgN`1B56Us|o-`Qn&NerJ-h_nf`LfNg7ka4Oi@rCt@U5*$ z=o5EmLTJph(es!ECq}lm^`}3zquZ`Ubc5h5C6|p5z^k*y%DnrTqeC`~txSB3eY!gz zBlJP@U?ZrD3~MZV?;~iN+b8aH3c7lBibP#B?>}#{C5F5mhem}>1_95kKNt0Om(E#c zU1Dx3M3_Wm`(Ge$Sav&@yCOF(tkS+y=U23~G&@J+vnF4#i`un_P?>{b0kd?#KqRw7oOr}IW&8<#_CpF9Go$LN6 z?$4B#oSe_QDSuU;Stn&{wx`liIsRqpqC*}>@x(mnt1fIEK}{W?7}592t#eNCcCEz0 z1k=ZIST%yXvIm9!qH8degWX~|Yywj>6;MXh!z{2pOrYy_7^k-r_^!F__dLgs{%)3` zs9YRhq_M}IPf<^55G?Ym)E&&z(!xQ_5PJ52b=kooK5@dfn7Go6aNxW;N zy}aMG{(3kK0^E}MeN7Zw{wYslC26r$tElryO6~}O?2QrfWGz269srKlwMor27?(z( z#?uLbGf_ImYl(M5|2uF?rQpPV7^#?QitW*%TPx?ghi75}BGjN0R*Uw5+Y z1SyMmnEY6XD8|VbJ>Os?PfLx@Kudi_;qF&V9SB9qwmFCI!yADYWvW`Q4>d?1`_7Am zO5U7p*NrTDYicp~4T8rE5nRRWlY!XSowB*xpLM~Vy~c5dGr-Y)L%H)Eqm5!ep>1qV zsyasm0T#g$rFL5}_~qg%Ve^09*cKB7=PMq8*q9D-GGyK$9E@ zqV(1bN?@!fV;Msa`PM*<5T$Dza01iQ@o z<@4d_{F@cIl*})6%Mv_XHHyaE>R_J@oN1w6QFl^__5ATWRxb0;UE_qc|0F&5O~rcf zthW6yhrruVFqSTNba`0T^P%)DkY4yH#g?U=ty9=_N5SV6i!`Z)nLQaT%pu7b>#D;s zDDAd|j=bBiONP+B>Jv`m36yIcJ#y>IomHBup+@^XEo00oI>RG@QfUI1#;9_3F3a^F zP@2a^GEDCC>x*$tUFr7Pn>!nE9Z|Yv&WZ_2&E!%PMT&bbY#sxN+n0hHLF?wl3i}M> z!7$C@iOXruY!y^^O%{{K)dKBhb04CTQyL_)3z&n}7VsX;cd)w&ZO1aM3Gh_p7tejd zMKH-6AcQi(G;9<#(iDQOIq9c{36GU{6O{mxP_LAe=NPz(sa5=GbD`kuXBwva`bNrj|T z53I|dUmgbp%>hzB>m&IsEm()~&GSx(5y^^N7*)KbnvWS{OVP2G)RdjF_c(e6h6{1G zt1hkjpe(M0JQlfZ(5yZ=F#zk*&&t;Phjqxq2EluoAcONxVMg4=FlV%_#%R%uT?=_E z@7uO0Zq{ObsG>a%jQzu2XZ>bIfOi+)L5V{(>A}8yTAla+-#PPXR`TWrFz(75tJRo+Cc{KaZ@PdIPv4uxc;CXizd`Ez44xd1 z(BOz#pC6P`MTs#AA(+MGCCiiA zvJOjae<9-1^)vpGwPq`-<8n?_x{C2a7lZm*^V!&KyI59*P08_XIdx@K$EnT5%%Z?g zSTM_X1Cc$X+c4EUGm;KFAgTn01Km4HY#;lt6m+GZpD`?Fj zsr8@7MtHn{A^;0jx1FQ}wQA*SHiMUp$%=s&w$40!hbomj#uS)ZSyW-%o4zyzRaqB=;8G{m#z-Jw{+mIJ81& zD>YzG8+_5DwVQu3%o%Cpm-Q?Xho%zaEx9*UmW{_n`qnH8LYeK9RR3q%4;}YGjsCnt zr(~2{=By2GM^K11bKmDkppucA|2C#Gd z5nJXF*`^ATxs+VK>HIZ2%Bsp@3_R@Q$H6o?U+rvMl+xZYPOzu$#njA--3$4QsD8ns z$&Oi$+N7eliKX1DR&J^daLmPeZ8oMoD;*O>?Gchbb4)4~u75r=Su(kw!_=o@w-SzzpP|Tj;^qU{f zQFaR7^-f$c88@TI$ave_`&Po+mxiIZ# z_x{AaZ9e?DN}89vtr5f!*|cq88HrV{n8&G4g;%+VkFl}4AGdRGPc2w2mOdq%HFk0p z5#Vg=K&gm1bBYMi=8U_YDm@cZ07e-b{#so}iDk96GWrqYX*-%G;?O&%A8wOX8Vn!L zYKd1AfwPpUKe29vY0ek*N4RoZ;hS`cQH}FN83@8lR#jfW{Rn9+7(3;IoqbBA1@5!E zD)K!b3QvBGl91~?@Q@WB(-3{0aVMd3#9)th*u-?nIebyKkNX|s$7uWe6jY$}rOC=P;3PwBPiHgeK2~xMy5CNBX?Hy!sg`NqaY=N@S!7=(uM)HWY72U7s6S z`R)v)4fk0Y_M}(JKa42}7a03~AE&)bYq7F6e(YS^$6xdYgKu7?50f;_yK<{lMo+O- z3`(p+eW2Y>Kg*8+=rG*1LJd1!-<&~?-a7J8UP&gPj7HgCIQ=k6VeclGkC zFR*hc=ky?;lLw0q=v2U?-ib8ycKw_cv0l3rpwfQTo|Rm9XcGrOrII3E$bFKHM2UB`-sHiBUQqLKFbjU^_l*GKac*2bTz9MG{&z%a@+msjp_$bwMyPP z1}HGz&3m^Dpw4GP&_D6(oArpSHWKc79tJ%cU-LyqLKg}AdEmNsarpRiT7Ys#h7T(PK(;!zI&k>EZ}Q{bGU5P-jcZ5@TDrKu%TT&?0g=Hx@)aOk(DtIp)~+IX zk6&!v1WtojsCxT1dq7WpKWoTXj+n8(jv-49siMJn@0jawCuoj)7U!pekL?B3)IJrD zzg{|%mrlP}i${_clB`8} z63dlv@FhdNzYd^gv>rK@r?jg)zAd8%DLk!!V`Ha&srW=;AW*bs{v~~z#!(KSASD!A zPoG@J7Zp)ERTVVBb;4qjSB2t2; z_xZHvAEg(X&Pgy`EnQuhz%a@<5~T7WHI+Dl76#c_DYHpu`EY}Ke=Q1&Qgeutl2$gW=yiQk|#xlm2Eo)U2^nVH~5+M(}V z`Hn~$0}LJR=6Q<{Sy&N0D+wML4Pj`Ptphq%5rkJA6`%g*AOZVhWk9fDBELeb^)|!W z+t{r6c}`BG4#~EjBvvB6n?VRNKBV^)_*a@B8y9q84dj)f{i6_%wHZG7SI{me<;mQG z{S-Y~!Va(8s~Ks6QbFc$SHz{2#8~f1et2;QF$R6h4&#!L0yivwxZhFucjNPp-?MK5 z+obRTpZ6y6>(3exUp_tGQf)NW=5eub zV=gSG&xK7PlIBh~#B8-SmUx25t)Ryj23vC9Ksmg;Q$d7cDYB=^?k z2dO?`K^RXhr@;h~whqb(tk+Y3YRbj1hb%*31GP^v+KA{p2x{RqiE%Ettl_pGR2h_F zq2r9nfxMoX`9AB z4sIChd(mxQx4QPY(rYxlbM87-mXLPf$ee11_|CR_S^E_o*_!&FF|S?#ahwtiud=Mu zR=Cc}jQTA<4%`qjU~Or0^f$3OK+=9#zU6u?L`wy%c}(t$t5g_4dR8cA+?*UMoD(?g zz;?>}_Y%{6nBCA<#|mD|O}U5QkRgU+U{7XA?CmFtd95vqP5&uwni(tNi~o`=LH!&0 zva48RPEC;o#|`%DcF5Yznh=`ZY&3lv9`+EkhG}+l;@|^cl@9-JarlT3_Vz{qz%0y< z-|_O^tHunzNX!I;-#>g@qtK*s2WStj-#|H9c>i86;){FMY=qxudWvwVVk!21LwkKl zf<@{*Orve%rW6TxLSK)xM7zGA1GnyZ{TS3JLm^zjiY4z_h>{}GZAI9H?0iFJix!16 z@O>ud4KMPPzqieLgtrrDAg%m{J0vF(H?IJ*z~^Q@f)mXMTV6gv(Gn6J6ti2<+M zbIF^R&40h8%)!BrOcGbxp!r>H<|Cn2#?u#b4X7xn*4q`hwSSthA+Z04zI{MOo`~gs ze~D(v9kOU_No7|=Kcs1R>j>_LX0fyf;JWjtWgJw;D_R8%sEE87mCiC;sOw8 z)4-#qm4kZsnT`YNGO7MHwl=S=33(SD3@H}CHvIByg%Ia8R%<5u1UyuqEz|0fUGDnn2Hw8 zIuxAt?w17=pH5px7w7%m6cSbfzMGATg?R`IOw_|%uP0y(mY(vSS`rqVc@Wwn`8rxAezOzQmR3sh3z~OPkuHn`rJs3E%||<+ zkK{bk3*t^m2m#3~Q?w1G7aT=jxn6%qX218diu>uEP{b;kHHb7;cZ*7}<$hMa!qC3C z4_#UV&*M-vMx-RP#OtXZI&@=EoY!4HY(G?zz!r!mRfo&c`#1o!11^!k;5AYzXpf2ay_0w zZiYpVRIL=zHx_MD>QctIf={ruLHeA5mK!61KR{hzWM4VK)=hmH7lR$(i=ve&`KxiV z>+;te85KjeA3t|hiA$kRF(vWk!X4~5!1bO^zb(K`C^fXuez5%J*>^FU<`4m|02D+f zHBTP@vfT5e(SChQ3pt5e^QD07xiz`;(0@Zwp+#^H8qqM~0W1N5@@+Ppf)*Q|lS zVq8ZqK<2D?x_ujy()Vc>A(xH|kgki-JnZ0Recpr}v#U+I4i86@2K;5Yh~&1it_gVi z>0%>I=QXbKzsZHC>A3LWIYHux*|zd1i{w0#Sr-4ao5JVd4R`!gS1(+){C$gxVcajX zEFH2u#OBO|#aa}*Vm!!d38W)MFSc00x{dJky56>k_rUn!o)zh<-{{lY#hkVlf+3V{ z_zw-_u6<(}0}$4<^O)+s!H_$WYa-BTR`bM(6;nQD*yN@Rl$MEi8#^H13*-?k^>OIl zKy;n_qhpn}A$NjbaDy7@Kzw$^i=(lm3H$I)QsIC7v=f$56IN^uyyU{m^T!2^NZJhI zX#KvU<-*H2yBu?sxcH}{Ei6nd(Z8TUlSG!UcF1n4!a~D0rRzHkJ36G&X!bp9S=fu~ z4fS>W=$v1rk_bqgyI)q*LLH0THEyoALxsTIABBcA)nS?3Rfh4c$4EP``N&4&fqf-m zYK?s)gew4jR$NaND19f7(iERQaxEytCIXqe*R(-Gdh|Yi+{9ND%l1kirHw!T`#_Op zZ{UnJ)y_X|;A>7lQMRRmrn!Lg))MUISc2@}1z381Y|Z(3(yl@K)RED5-5vW`dWN47 z#+P3V5A==4#Y;gMMR|oyZY64^nb1M|vOzI|@7qFUCt>E)&gg93zm0}`O&D6g>(k=o7@lFwB6_> z-)ObcgI{8cO7+GrG=#p?3s5nCN8fBT&grXPm_23|E;w22<+BsVKvR13!dCF1O{O$9 zxOqP8>gmasoL*xSOjkcG=OzODw@tZXIkYc?r!oV$(Se8Z7oqEn0T{Xv$#A#qS(E%! z;?tdD=J`xhz=Ml+z36M z#;q%sxOv@OWw-A+@i`RBv0l{->_@PxnvJg-tlyvE+>*J{WgB64rxeUnv&3n|ysTqx z7sCz|lT)_InJn(e&K_2W4hk`UyVIUW?WY`X9n=t;**d;b{bFrM&!+sjTmm+Cw&}mZ zY%Zoi9G{jxphagpe+b=zXEM|bVO)`*h9!Vwxue@b&=BmrqFBU~0}{Mk z%SE-&^JWmuz)=GnQS&UGqS@Q@Ao*%ovW&@?dHbBrhUUS%y+SobYvgua3qZ2mK7En&%lCHSsfJsfDj|ViWYt2A zTGR?LKRa8p?RR)^je~qvYBe@19_=f|eXv2yY>)qSiZB6Y_JrmpLf;Z?1ukCka&9^BdH^OJtJAzLda|J@^?~)s6HkeBb|KoLaa@g~C*;Gf!`I$TU zZ}nG$lKfX1mQV4-!h(>D4&8^HSiw-0~;W3M1u8acTOjASdvk8DycpL03} zTL`RLjDH&*RvpWEZXyOd;lyFL==?P*^K}cI`Ki<~yUIS&Dp~rkk;S@oA_MzWr`Qr^ zRZQ?ALDCFwZhu;gov@m3SQ zbpa^Vq=>`u|Oh?3i{7stS2h>17Rnm6+f70BsN0bYda@=Jr9Q7;H&V;IL-e za9=Q|8hWT-7(Jy~oJ|wiT7p|al<2!`EczXdQ;eh5&6E-S)~mJq+dY@)RJWf#oI-rYiZO9Jd-q;CpJ(g zM$AjHVeyY0Ximuz%^W+@%8=N2_=(ERo0kvxOX99^Old6fig+a>D8a8$e3-@~L%qUM zq6ue8Ly;!?QsuPb&id)F`Sj6;uZ7XC9X_>DUbm~}6^rksAr%@ff<6Z_2=+;WOcTE- z@kXasT0VwEQ)tLTuj$#3BT1m7M?Xi`$ymuUguK#2-%W#NeS~>=V3NkAF?A?h3B1r) zvQe${O|_RZ1K2r1r-QJki6V0o(H|2#Arcx~pAG5u#7l9|f@G@tP&>xDbM2}uetXaM z&*@GF=hjGgpGCN!P)s+x&p&HW@P$Jc)^LQi8w=Xqm#KPx25@uZ6n*@MHhS? z2(pUctBk$E6Z55g87+)ES#(@{)gxfVLIbzr=YT%yW!erDsF9qk95a&Nfor&%(Tr=T zHZknn5`U5{cr3pj@1lY6i!FZ#dw}#hMxokOP}gZ=-X~dIeM577yn;@q*mt=C%Cyuu z_)^v1z9Z?cVj`GUsK%WdKgpT+Cirt>9GHT5`(b@@=jbhD=2NuB(W|qZxO2--I9`Qn z8xTFGZT^=PUO7oWHG^>cc?dRczNVfs3%Vo*R4X-Q9;AgO{2QE`0{%=)QSN8@ABd;@ zyHo%Y-u>XIz;>wUs8UUiQbO9Shjgh{@(lLOTgUio!w(_h77syb=DyfGE`R?8#hY>B zg@FULsl2HTADwS}h*DaVrEL`V^P(|#p1Ie^MXitjiy4d9+ADc63x-ZdL>g$-rqbOi zW^p1-l%V#I!x#tS^Cq{Qv2NGGxX2Nti5IAi12syfh9Mj;<2!BWp1IoWX9(8JySk^v zSCvV?2MzYIkSd#UATBez4ChdeMQ8H6Ti@kyk;R>3{Vx+MBOaho{(j@05qa>@znz2x zCWVNV2y~K-?X*?!p|_kb@A2{8VcB+YvBWU_brUi{2SIe=hM`Mg*j4>L_a|IMpl#p0Q0%q7krcR(Q44Il)tjVRO zz=&sxJ&{($*?u@$n(4}Umm%~J`R8?xNvm{6h#6&X%R}2Gwh2}pulc~xEf{bfs^f&onnGu9z2WrEcsgYo<;l5iUmt^&BmPzB zR$5{RyW|Gv%S@Dzu-TFXL5R4fOZL~^JuUPQJpM9rC4Z4=4EBr5_zcRXUTt4j4rP(I zJ`~~8mK0iZxD6T@I(Npm0o1 nPF+qefWeUS|2o0P@1mFc_5b$?w064{$WIUq%?+OEIo Date: Tue, 9 Jul 2024 09:26:39 +0800 Subject: [PATCH 02/12] meta: modify the format for meta.yml --- alertmanager/meta.yml | 2 +- bind9/meta.yml | 2 +- bisheng-jdk/meta.yml | 6 +++--- bwa/meta.yml | 2 +- cann/meta.yml | 2 +- dlrm/meta.yml | 2 +- dotnet-aspnet/meta.yml | 2 +- dotnet-deps/meta.yml | 2 +- dotnet-runtime/meta.yml | 2 +- grafana-agent/meta.yml | 2 +- grafana/meta.yml | 4 ++-- httpd/meta.yml | 4 ++-- kafka/meta.yml | 2 +- llm-server/meta.yml | 4 ++-- llm/meta.yml | 6 ++---- loki/meta.yml | 2 +- memcached/meta.yml | 4 ++-- mimir/meta.yml | 2 +- mlflow/meta.yml | 5 ++--- mysql/meta.yml | 2 +- nginx/meta.yml | 8 +++----- oneapi-basekit/meta.yml | 3 ++- oneapi-runtime/meta.yml | 3 ++- openjdk/meta.yml | 2 +- postgres/meta.yml | 4 ++-- prometheus-pushgateway/meta.yml | 2 +- prometheus/meta.yml | 4 ++-- pytorch/meta.yml | 2 +- redis/meta.yml | 4 ++-- spark/meta.yml | 11 ++++------- squid/meta.yml | 2 +- telegraf/meta.yml | 2 +- traefik/meta.yml | 2 +- zookeeper/meta.yml | 2 +- 34 files changed, 52 insertions(+), 58 deletions(-) diff --git a/alertmanager/meta.yml b/alertmanager/meta.yml index aaa2076e..1e37b4a2 100644 --- a/alertmanager/meta.yml +++ b/alertmanager/meta.yml @@ -1,2 +1,2 @@ 0.27.0-oe2203sp3: - - altermanager/0.27.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: altermanager/0.27.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bind9/meta.yml b/bind9/meta.yml index f596b4c3..adfae706 100644 --- a/bind9/meta.yml +++ b/bind9/meta.yml @@ -1,2 +1,2 @@ 9.18.24-oe2203sp3: - - bind9/9.18.24/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: bind9/9.18.24/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bisheng-jdk/meta.yml b/bisheng-jdk/meta.yml index 59d29077..42bc5ec8 100644 --- a/bisheng-jdk/meta.yml +++ b/bisheng-jdk/meta.yml @@ -1,6 +1,6 @@ 1.8.0-oe2203lts: - bisheng-jdk/1.8.0/22.03-lts/Dockerfile + path: bisheng-jdk/1.8.0/22.03-lts/Dockerfile 1.8.0-oe2203sp3: - bisheng-jdk/1.8.0/22.03-lts-sp3/Dockerfile + path: bisheng-jdk/1.8.0/22.03-lts-sp3/Dockerfile 17.0.10-oe2203sp3: - bisheng-jdk/17.0.10/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: bisheng-jdk/17.0.10/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bwa/meta.yml b/bwa/meta.yml index c3110f54..bee328df 100644 --- a/bwa/meta.yml +++ b/bwa/meta.yml @@ -1,2 +1,2 @@ 0.7.18-oe2203sp3: - bwa/0.7.18/22.03-lts-sp3/Dcokerfile \ No newline at end of file + path: bwa/0.7.18/22.03-lts-sp3/Dcokerfile \ No newline at end of file diff --git a/cann/meta.yml b/cann/meta.yml index 43451cba..3bafc298 100644 --- a/cann/meta.yml +++ b/cann/meta.yml @@ -1,4 +1,4 @@ # key为镜像的tag,value为构建对应tag镜像的Dockerfile保存路径 cann7.0.RC1.alpha002-oe2203sp2: - - cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile + path: cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile diff --git a/dlrm/meta.yml b/dlrm/meta.yml index 07db3669..1636977c 100644 --- a/dlrm/meta.yml +++ b/dlrm/meta.yml @@ -1,2 +1,2 @@ 1.0-oe2203sp3: - dlrm/1.0/22.03-lts-sp3/Dockerfile + path: dlrm/1.0/22.03-lts-sp3/Dockerfile diff --git a/dotnet-aspnet/meta.yml b/dotnet-aspnet/meta.yml index 5c4db1ef..5ca0b8ce 100644 --- a/dotnet-aspnet/meta.yml +++ b/dotnet-aspnet/meta.yml @@ -1,2 +1,2 @@ 8.0.3-oe2203sp3: - dotnet-aspnet/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-aspnet/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/dotnet-deps/meta.yml b/dotnet-deps/meta.yml index 24c7a255..1fc730ae 100644 --- a/dotnet-deps/meta.yml +++ b/dotnet-deps/meta.yml @@ -1,2 +1,2 @@ 8.0-oe2203sp3: - - dotnet-deps/8.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-deps/8.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/dotnet-runtime/meta.yml b/dotnet-runtime/meta.yml index 50c82d63..cbac1ae7 100644 --- a/dotnet-runtime/meta.yml +++ b/dotnet-runtime/meta.yml @@ -1,2 +1,2 @@ 8.0.3-oe2203sp3: - - dotnet-runtime/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-runtime/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/grafana-agent/meta.yml b/grafana-agent/meta.yml index 64713ecd..7b2ac1ed 100644 --- a/grafana-agent/meta.yml +++ b/grafana-agent/meta.yml @@ -1,2 +1,2 @@ 0.40.2-oe2203sp3: - - grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/grafana/meta.yml b/grafana/meta.yml index e38c3011..f8e40292 100644 --- a/grafana/meta.yml +++ b/grafana/meta.yml @@ -1,4 +1,4 @@ 7.5.11-oe2203lts: - grafana/7.5.11/22.03-lts/Dockerfile + path: grafana/7.5.11/22.03-lts/Dockerfile 10.4.1-oe2203sp3: - grafana/10.4.1/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: grafana/10.4.1/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/httpd/meta.yml b/httpd/meta.yml index a99328e8..5b77d050 100644 --- a/httpd/meta.yml +++ b/httpd/meta.yml @@ -1,4 +1,4 @@ 2.4.51-oe2203lts: - - 2.4.51/22.03-lts/Dockerfile + path: 2.4.51/22.03-lts/Dockerfile 2.4.58-oe2203sp3: - - 2.4.58/22.03-lts-sp3/Dockerfile + path: 2.4.58/22.03-lts-sp3/Dockerfile diff --git a/kafka/meta.yml b/kafka/meta.yml index 4292c36e..66a6abd8 100644 --- a/kafka/meta.yml +++ b/kafka/meta.yml @@ -1,2 +1,2 @@ 3.7.0-oe2203sp3: - - kafka/3.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: kafka/3.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/llm-server/meta.yml b/llm-server/meta.yml index a7c6d880..5d5a000b 100644 --- a/llm-server/meta.yml +++ b/llm-server/meta.yml @@ -1,4 +1,4 @@ 1.0.0.gpu-oe2203sp3: - llm-server/1.0.0.gpu/22.03-lts-sp3/Dockerfile + path: llm-server/1.0.0.gpu/22.03-lts-sp3/Dockerfile 1.0.0.cpu-oe2203sp3: - llm-server/1.0.0.cpu/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: llm-server/1.0.0.cpu/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/llm/meta.yml b/llm/meta.yml index 7cef3906..8becc9eb 100644 --- a/llm/meta.yml +++ b/llm/meta.yml @@ -1,7 +1,5 @@ # key为镜像的tag,value为构建对应tag镜像的Dockerfile保存路径 - fastchat-pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: - - llm/fastchat/22.03-lts-sp2/Dockerfile - + path: llm/fastchat-pytorch2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile chatglm2_6b-pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: - - llm/chatglm2_6b/22.03-lts-sp2/Dockerfile \ No newline at end of file + path: llm/chatglm2_6b-pytorch2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile \ No newline at end of file diff --git a/loki/meta.yml b/loki/meta.yml index cc7160e0..7482ed00 100644 --- a/loki/meta.yml +++ b/loki/meta.yml @@ -1,2 +1,2 @@ 2.9.5-oe2203sp3: - - loki/2.9.5/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: loki/2.9.5/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/memcached/meta.yml b/memcached/meta.yml index 18a3719d..b6c1b702 100644 --- a/memcached/meta.yml +++ b/memcached/meta.yml @@ -1,4 +1,4 @@ 1.6.12-oe2203lts: - memcached/1.6.12/22.03-lts/Dockerfile + path: memcached/1.6.12/22.03-lts/Dockerfile 1.6.24-oe2203sp3: - memcached/1.6.24/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: memcached/1.6.24/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/mimir/meta.yml b/mimir/meta.yml index 85284fdd..6695ee8d 100644 --- a/mimir/meta.yml +++ b/mimir/meta.yml @@ -1,2 +1,2 @@ 2.11.0-oe2203sp3: - - mimir/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: mimir/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/mlflow/meta.yml b/mlflow/meta.yml index c7ee2f0b..16924cfa 100644 --- a/mlflow/meta.yml +++ b/mlflow/meta.yml @@ -1,5 +1,4 @@ 2.11.1-oe2203sp3: - mlflow/2.11.1/22.03-lts-sp3/Dockerfile - + path: mlflow/2.11.1/22.03-lts-sp3/Dockerfile 2.13.1-oe2203sp3: - mlflow/2.13.1/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: mlflow/2.13.1/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/mysql/meta.yml b/mysql/meta.yml index 6d231d7c..3f9f90bf 100644 --- a/mysql/meta.yml +++ b/mysql/meta.yml @@ -1,2 +1,2 @@ 8.3.0-oe2203sp3: - mysql/8.3.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: mysql/8.3.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/nginx/meta.yml b/nginx/meta.yml index 31899c1d..fc135e09 100644 --- a/nginx/meta.yml +++ b/nginx/meta.yml @@ -1,8 +1,6 @@ 1.16.1-oe2003sp1: - nginx/1.16.1/20.03-lts-sp1/Dockerfile - + path: nginx/1.16.1/20.03-lts-sp1/Dockerfile 1.21.5-oe2203lts: - nginx/1.21.5/22.03-lts/Dockerfile - + path: nginx/1.21.5/22.03-lts/Dockerfile 1.25.4-oe2203sp3: - nginx/1.25.4/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: nginx/1.25.4/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/oneapi-basekit/meta.yml b/oneapi-basekit/meta.yml index 4864270a..db8d9d89 100644 --- a/oneapi-basekit/meta.yml +++ b/oneapi-basekit/meta.yml @@ -1,4 +1,5 @@ # key is the image tag, value is the Dockerfile path for creating the image with corresponding tag 2024.2.0-oe2403lts: - - oneapi-basekit/2024.2.0/24.03-lts/Dockerfile + path: oneapi-basekit/2024.2.0/24.03-lts/Dockerfile + arch: x86_64 diff --git a/oneapi-runtime/meta.yml b/oneapi-runtime/meta.yml index 6f47f372..c330bf6c 100644 --- a/oneapi-runtime/meta.yml +++ b/oneapi-runtime/meta.yml @@ -1,4 +1,5 @@ # key is the image tag, value is the Dockerfile path for creating the image with corresponding tag 2024.2.0-oe2403lts: - - oneapi-runtime/2024.2.0/24.03-lts/Dockerfile + path: oneapi-runtime/2024.2.0/24.03-lts/Dockerfile + arch: x86_64 diff --git a/openjdk/meta.yml b/openjdk/meta.yml index 3828a1b3..a114052e 100644 --- a/openjdk/meta.yml +++ b/openjdk/meta.yml @@ -1,3 +1,3 @@ # "23+13" is invalid as a tag 23_13-oe2203sp3: - openjdk/23+13/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: openjdk/23+13/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/postgres/meta.yml b/postgres/meta.yml index 6b6b831e..53d35e70 100644 --- a/postgres/meta.yml +++ b/postgres/meta.yml @@ -1,4 +1,4 @@ 13.3-oe2203lts: - postgres/13.3/22.03-lts/Dockerfile + path: postgres/13.3/22.03-lts/Dockerfile 16.2-oe2203sp3: - postgres/16.2/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: postgres/16.2/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/prometheus-pushgateway/meta.yml b/prometheus-pushgateway/meta.yml index b87c5861..4ec8ec57 100644 --- a/prometheus-pushgateway/meta.yml +++ b/prometheus-pushgateway/meta.yml @@ -1,2 +1,2 @@ 1.7.0-oe2203sp3: - prometheus-pushgateway/1.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: prometheus-pushgateway/1.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/prometheus/meta.yml b/prometheus/meta.yml index 77acd0d9..7b9c2376 100644 --- a/prometheus/meta.yml +++ b/prometheus/meta.yml @@ -1,4 +1,4 @@ 2.50.1-oe2203sp3: - - prometheus/2.50.1/22.03-lts-sp3/Dockerfile + path: prometheus/2.50.1/22.03-lts-sp3/Dockerfile 2.20.0-oe2203lts: - - prometheus/2.20.0/22.03-lts/Dockerfile \ No newline at end of file + path: prometheus/2.20.0/22.03-lts/Dockerfile \ No newline at end of file diff --git a/pytorch/meta.yml b/pytorch/meta.yml index 655047ef..c3ea7b24 100644 --- a/pytorch/meta.yml +++ b/pytorch/meta.yml @@ -1,2 +1,2 @@ pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: - pytorch/2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile + path: pytorch/2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile diff --git a/redis/meta.yml b/redis/meta.yml index 8c0ea626..be40f035 100644 --- a/redis/meta.yml +++ b/redis/meta.yml @@ -1,4 +1,4 @@ 6.2.7-oe2203lts: - redis/6.2.7/22.03-lts/Dockerfile + path: redis/6.2.7/22.03-lts/Dockerfile 7.2.4-oe2203sp3: - redis/7.2.4/22.03-lts-sp3/Dcokerfile \ No newline at end of file + path: redis/7.2.4/22.03-lts-sp3/Dcokerfile \ No newline at end of file diff --git a/spark/meta.yml b/spark/meta.yml index b4a950c8..7c93ed9c 100644 --- a/spark/meta.yml +++ b/spark/meta.yml @@ -1,11 +1,8 @@ 3.3.1-oe2203lts: - spark/3.3.1/22.03-lts/Dockerfile - + path: spark/3.3.1/22.03-lts/Dockerfile 3.3.2-oe2203lts: - spark/3.3.2/22.03-lts/Dockerfile - + path: spark/3.3.2/22.03-lts/Dockerfile 3.4.0-oe2203lts: - spark/3.4.0/22.03-lts/Dockerfile - + path: spark/3.4.0/22.03-lts/Dockerfile 3.5.1-oe2403lts: - spark/3.5.1/24.03-lts/Dockerfile \ No newline at end of file + path: spark/3.5.1/24.03-lts/Dockerfile \ No newline at end of file diff --git a/squid/meta.yml b/squid/meta.yml index f97598a5..bc5afa36 100644 --- a/squid/meta.yml +++ b/squid/meta.yml @@ -1,2 +1,2 @@ 6.8-oe2203sp3: - - squid/6.8/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: squid/6.8/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/telegraf/meta.yml b/telegraf/meta.yml index a16720f3..4ff2d5e0 100644 --- a/telegraf/meta.yml +++ b/telegraf/meta.yml @@ -1,2 +1,2 @@ 1.29.5-oe2203sp3: - telegraf/1.29.5/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: telegraf/1.29.5/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/traefik/meta.yml b/traefik/meta.yml index f306dbd3..b0b22366 100644 --- a/traefik/meta.yml +++ b/traefik/meta.yml @@ -1,2 +1,2 @@ 2.11.0-oe2203sp3: - - traefik/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: traefik/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/zookeeper/meta.yml b/zookeeper/meta.yml index 2fb41d2b..1dc73866 100644 --- a/zookeeper/meta.yml +++ b/zookeeper/meta.yml @@ -1,2 +1,2 @@ 3.8.3-oe2203sp3: - zookeeper/3.8.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: zookeeper/3.8.3/22.03-lts-sp3/Dockerfile \ No newline at end of file -- Gitee From d1d869a7584e6f279eda8a2df31584d8e0f93344 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 9 Jul 2024 10:07:49 +0800 Subject: [PATCH 03/12] golang: break error build process --- go/1.22.5/22.03-lts-sp4/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/go/1.22.5/22.03-lts-sp4/Dockerfile b/go/1.22.5/22.03-lts-sp4/Dockerfile index e5d29b20..fbc1244e 100644 --- a/go/1.22.5/22.03-lts-sp4/Dockerfile +++ b/go/1.22.5/22.03-lts-sp4/Dockerfile @@ -10,12 +10,14 @@ ENV GOLANG_VERSION=1.22.5 ENV GO_ROOT=${LOCAL_PATH}/go ENV PATH=$GOPATH/bin:$GO_ROOT/bin:$PATH -RUN yum update && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ +RUN set -eux; \ + yum update && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ curl -fSL -o ${LOCAL_PATH}/go.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-${TARGETARCH}.tar.gz; \ tar -xvf ${LOCAL_PATH}/go.tar.gz -C ${LOCAL_PATH}; \ rm -f ${LOCAL_PATH}/go.tar.gz -RUN find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}"; \ +RUN set -eux; \ + find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}"; \ touch ${GO_ROOT}/pkg; \ find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}"; \ mkdir -p ${GO_ROOT}/bin/linux_${TARGETARCH}; \ -- Gitee From 616bf86965dac6a3dcce3a69d4b27112b18093d4 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 9 Jul 2024 11:17:46 +0800 Subject: [PATCH 04/12] golang: modify for build --- go/1.22.5/22.03-lts-sp4/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/go/1.22.5/22.03-lts-sp4/Dockerfile b/go/1.22.5/22.03-lts-sp4/Dockerfile index fbc1244e..83ca216c 100644 --- a/go/1.22.5/22.03-lts-sp4/Dockerfile +++ b/go/1.22.5/22.03-lts-sp4/Dockerfile @@ -11,15 +11,15 @@ ENV GO_ROOT=${LOCAL_PATH}/go ENV PATH=$GOPATH/bin:$GO_ROOT/bin:$PATH RUN set -eux; \ - yum update && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ + yum update -y && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ curl -fSL -o ${LOCAL_PATH}/go.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-${TARGETARCH}.tar.gz; \ tar -xvf ${LOCAL_PATH}/go.tar.gz -C ${LOCAL_PATH}; \ rm -f ${LOCAL_PATH}/go.tar.gz RUN set -eux; \ - find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}"; \ + find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}" \;; \ touch ${GO_ROOT}/pkg; \ - find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}"; \ + find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}" \;; \ mkdir -p ${GO_ROOT}/bin/linux_${TARGETARCH}; \ ln -sf ${GO_ROOT}/bin/go ${GO_ROOT}/bin/linux_${TARGETARCH}/go; \ ln -sf ${GO_ROOT}/bin/gofmt ${GO_ROOT}/bin/linux_${TARGETARCH}/gofmt -- Gitee From e6f1c4f5e59dfa7c7a36b2aa29855e0bd5f02943 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 9 Jul 2024 11:31:50 +0800 Subject: [PATCH 05/12] golang: modify line break --- go/1.22.5/22.03-lts-sp4/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/1.22.5/22.03-lts-sp4/Dockerfile b/go/1.22.5/22.03-lts-sp4/Dockerfile index 83ca216c..90b033e1 100644 --- a/go/1.22.5/22.03-lts-sp4/Dockerfile +++ b/go/1.22.5/22.03-lts-sp4/Dockerfile @@ -17,9 +17,9 @@ RUN set -eux; \ rm -f ${LOCAL_PATH}/go.tar.gz RUN set -eux; \ - find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}" \;; \ + find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}" \; && \ touch ${GO_ROOT}/pkg; \ - find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}" \;; \ + find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}" \; && \ mkdir -p ${GO_ROOT}/bin/linux_${TARGETARCH}; \ ln -sf ${GO_ROOT}/bin/go ${GO_ROOT}/bin/linux_${TARGETARCH}/go; \ ln -sf ${GO_ROOT}/bin/gofmt ${GO_ROOT}/bin/linux_${TARGETARCH}/gofmt -- Gitee From 8fb26fbb45cbbc7c5dd4fdd4c84ba2796277ff39 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 9 Jul 2024 19:43:42 +0800 Subject: [PATCH 06/12] meta: add description for meta.yml --- README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/README.md b/README.md index 2b9b31d1..e129e3c3 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 - [22.03-lts-sp3, 22.03, latest](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) - [23.03](https://repo.openeuler.org/openEuler-23.03/docker_img/) - [23.09](https://repo.openeuler.org/openEuler-23.09/docker_img/) + - [24.03-lts](https://repo.openeuler.org/openEuler-24.03-LTS/) - 存放路径规则:`openeuler/[openEuler版本号]/Dockerfile`, 例如:openEuler 21.09的Dockerfile位于`openeuler/21.09/Dockerfile`。 @@ -73,6 +74,39 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 - `doc/picture/` 存放应用相关的图片 + +每个应用镜像,包含一个meta.yml文件,存放该镜像的版本信息,文件路径为:`[应用名]/meta.yml` + + - `meta.yml` + + 需要枚举出当前镜像所有Tag, 配置格式如下: + + 镜像Tag-1: + path: dockerfile_path1 + arch: arch1 + 镜像Tag-2: + path: dockerfile_path2 + arch: arch2 + + 注释 + + + 示例如下: + + 3.3.1-oe2203lts: + path: spark/3.3.1/22.03-lts/Dockerfile + 3.3.2-oe2203lts: + path: spark/3.3.2/22.03-lts/Dockerfile + + 配置项说明: + | 配置项 | 是否必填 | 配置说明 | 配置示例 | + |--|--|--|--| + | path | 是 | dockerfile相对路径 | spark/3.3.1/22.03-lts/Dockerfile | + | arch | 否 | 默认不填,支持arm64和amd64双架构; 仅适配单架构时,需要指定。| x86_64,配置仅支持x86_64或aarch64 | + + + + #### 国内镜像仓 -- Gitee From 0f2e24f44b97d3f7b93b24370e040c14791cb497 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Wed, 10 Jul 2024 09:53:43 +0800 Subject: [PATCH 07/12] review: code review idea modify --- README.en.md | 34 ++++++++++++++++++++++++++++++---- README.md | 41 ++++++++++++++++------------------------- cann/meta.yml | 2 -- go/README.md | 26 +++++++++++++++----------- go/doc/image-info.yml | 27 +++++++++++++++------------ llm/meta.yml | 1 - oneapi-basekit/meta.yml | 2 -- oneapi-runtime/meta.yml | 2 -- 8 files changed, 76 insertions(+), 59 deletions(-) diff --git a/README.en.md b/README.en.md index 4e4aec14..6dd67b05 100644 --- a/README.en.md +++ b/README.en.md @@ -30,9 +30,11 @@ After the official images are published, we will push to every remote container - [22.09](https://archives.openeuler.openatom.cn/openEuler-22.09/docker_img/) - [22.03-lts-sp1](https://repo.openeuler.org/openEuler-22.03-LTS-SP1/docker_img/) - [22.03-lts-sp2](https://repo.openeuler.org/openEuler-22.03-LTS-SP2/docker_img/) - - [22.03-lts-sp3, 22.03, latest](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp3](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp4, 22.03](https://repo.openeuler.org/openEuler-22.03-LTS-SP4/docker_img/) - [23.03](https://repo.openeuler.org/openEuler-23.03/docker_img/) - [23.09](https://repo.openeuler.org/openEuler-23.09/docker_img/) + - [24.03-lts, latest](https://repo.openeuler.org/openEuler-24.03-LTS/docker_img/) - Path rule:`openeuler/[openEuler version]/Dockerfile`, such as: openEuler 21.09 Dockerfile is under `openeuler/21.09/Dockerfile` path. @@ -76,13 +78,37 @@ The content is as follows: Store application-related images +All openEuler application images contain a `meta.yml` file,which stores the image tag info,the file path is: `[app-name]/meta.yml` + + - `meta.yml` + + The example is as follows: + + # spark/meta.yml + 3.3.1-oe2203lts: + path: spark/3.3.1/22.03-lts/Dockerfile + 3.3.2-oe2203lts: + path: spark/3.3.2/22.03-lts/Dockerfile + + Configuration item description: + | Configuration item | Required or not | Description | Example | + |--|--|--|--| + | path | yes | Relative path of the image dockerfile | spark/3.3.1/22.03-lts/Dockerfile | + | arch | no | This configuration is required when only one architecture is supported. By default, it supports arm64 and amd64 architectures.| x86_64,only x86_64 or aarch64 can be configured. | + #### Available Container Repo -- Hub oepkgs: https://hub.oepkgs.net/ +- [hub.oepkgs.net](https://hub.oepkgs.net/) + +- [hub.docker.com](https://hub.docker.com/) + +- [quay.io](https://quay.io/) -- AtomHub: https://atomhub.openatom.cn/ #### Contributions -Welcome to submit your idea, issue and pull request. +1. After the pull request is merged, the CI process will automatically publish the image. +2. After the `dockerfile` is added or modified, the CI process will automatically publish the image. +3. After the `README.md` is added or modified, the CI process will automatically publish the image README information. +4. Welcome to submit image test cases to the project `eulerPublisher`; The automatic publishing process only checks whether the image can be successfully constructed if the image has no test cases. diff --git a/README.md b/README.md index e129e3c3..52874131 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,11 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 - [22.09](https://archives.openeuler.openatom.cn/openEuler-22.09/docker_img/) - [22.03-lts-sp1](https://repo.openeuler.org/openEuler-22.03-LTS-SP1/docker_img/) - [22.03-lts-sp2](https://repo.openeuler.org/openEuler-22.03-LTS-SP2/docker_img/) - - [22.03-lts-sp3, 22.03, latest](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp3](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp4, 22.03](https://repo.openeuler.org/openEuler-22.03-LTS-SP4/docker_img/) - [23.03](https://repo.openeuler.org/openEuler-23.03/docker_img/) - [23.09](https://repo.openeuler.org/openEuler-23.09/docker_img/) - - [24.03-lts](https://repo.openeuler.org/openEuler-24.03-LTS/) + - [24.03-lts, latest](https://repo.openeuler.org/openEuler-24.03-LTS/docker_img/) - 存放路径规则:`openeuler/[openEuler版本号]/Dockerfile`, 例如:openEuler 21.09的Dockerfile位于`openeuler/21.09/Dockerfile`。 @@ -78,45 +79,35 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 每个应用镜像,包含一个meta.yml文件,存放该镜像的版本信息,文件路径为:`[应用名]/meta.yml` - `meta.yml` - - 需要枚举出当前镜像所有Tag, 配置格式如下: - - 镜像Tag-1: - path: dockerfile_path1 - arch: arch1 - 镜像Tag-2: - path: dockerfile_path2 - arch: arch2 - - 注释 - 示例如下: - + + # spark/meta.yml 3.3.1-oe2203lts: path: spark/3.3.1/22.03-lts/Dockerfile 3.3.2-oe2203lts: - path: spark/3.3.2/22.03-lts/Dockerfile + path: spark/3.3.2/22.03-lts/Dockerfile + arch: aarch64 配置项说明: | 配置项 | 是否必填 | 配置说明 | 配置示例 | |--|--|--|--| | path | 是 | dockerfile相对路径 | spark/3.3.1/22.03-lts/Dockerfile | - | arch | 否 | 默认不填,支持arm64和amd64双架构; 仅适配单架构时,需要指定。| x86_64,配置仅支持x86_64或aarch64 | - - - - + | arch | 否 | 用于发布单架构镜像时指定镜像架构;无该字段时,默认发布x86_64和aarch64的双架构镜像。| x86_64,配置仅支持x86_64或aarch64 | #### 国内镜像仓 目前支持的第三方国内镜像仓有: -- Hub oepkgs: https://hub.oepkgs.net/ +- [hub.oepkgs.net](https://hub.oepkgs.net/) -- AtomHub: https://atomhub.openatom.cn/ +- [hub.docker.com](https://hub.docker.com/) +- [quay.io](https://quay.io/) -#### 参与贡献 +#### 镜像发布指南 -欢迎发表想法、提交问题、贡献代码。 +1. 提交镜像的PR合入后,会触发CI流程自动发布镜像。 +2. 镜像dockerfile文件新增和修改合入后,会触发CI流程自动发布镜像。 +3. 镜像README.md文件新增和修改合入后,会触发CI流程自动发布镜像README信息。 +4. 欢迎在`eulerPublisher`提交镜像的测试用例;当镜像没有测试用例时,自动发布流程中仅检查能否成功构建镜像。 \ No newline at end of file diff --git a/cann/meta.yml b/cann/meta.yml index 3bafc298..afa77831 100644 --- a/cann/meta.yml +++ b/cann/meta.yml @@ -1,4 +1,2 @@ -# key为镜像的tag,value为构建对应tag镜像的Dockerfile保存路径 - cann7.0.RC1.alpha002-oe2203sp2: path: cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile diff --git a/go/README.md b/go/README.md index c2edda4d..a486dbb3 100644 --- a/go/README.md +++ b/go/README.md @@ -32,7 +32,7 @@ Note: `/go` is world-writable to allow flexibility in the user which runs the co ``` # Dockerfile - FROM openeuler/go:{Tag} + FROM openeuler/go:1.22.5-oe2203sp4 WORKDIR /usr/src/app COPY go.mod go.sum ./ @@ -52,27 +52,31 @@ Note: `/go` is world-writable to allow flexibility in the user which runs the co There may be occasions where it is not appropriate to run your app inside a container. To compile, but not run your app inside the Docker instance, you can write something like: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 go build -v ``` This will add your current directory as a volume to the container, set the working directory to the volume, and run the command go build which will tell go to compile the project in the working directory and output the executable to myapp. Alternatively, if you have a Makefile, you can run the make command inside your container. ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 make + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 make ``` - Cross-compile your app inside the Docker container If you need to compile your application for a platform other than linux/amd64 (such as windows/386): ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 openeuler/go:1.22.5-oe2203sp4 go build -v ``` Alternatively, you can build for multiple platforms at once: ```bash - $ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 bash - $ for GOOS in darwin linux; do - > for GOARCH in 386 amd64; do - > export GOOS GOARCH - > go build -v -o myapp-$GOOS-$GOARCH - > done - > done + + # First, start a Go instance + docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 bash + + # Second, build for multiple platforms + for GOOS in darwin linux; do + for GOARCH in 386 amd64; do + export GOOS GOARCH + go build -v -o myapp-$GOOS-$GOARCH + done + done ``` - View container running logs diff --git a/go/doc/image-info.yml b/go/doc/image-info.yml index 64203ec3..d056ece6 100644 --- a/go/doc/image-info.yml +++ b/go/doc/image-info.yml @@ -7,7 +7,7 @@ environment: | yum install -y docker ``` tags: | - BiSheng JDK镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + Go镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 | Tag | Currently | Architectures | |----------|-------------|------------------| @@ -28,7 +28,7 @@ usage: | 使用`openeuler/go`容器作为构建和运行时环境,可按照以下内容编译并运行项目 ``` # Dockerfile - FROM golang:1.22 + FROM openeuler/go:1.22.5-oe2203sp4 WORKDIR /usr/src/app COPY go.mod go.sum ./ @@ -48,28 +48,31 @@ usage: | 在某些情况下,在容器内运行应用程序可能并不合适。要编译但不在Docker实例内运行应用程序,可采用如下方式: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 go build -v ``` 这会将当前目录作为卷添加到容器中,将工作目录设置为该卷,然后运行执行`go build`编译项目中的代码,输出为可执行文件myapp。如果项目中包含Makefile编译文件,可以在容器内通过make命令编译: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 make + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 make ``` - 交叉编译 如果需要为除去linux/amd64之外的其他平台编译应用(例如:windows/386), 可采用如下方式: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 openeuler/go:1.22.5-oe2203sp4 go build -v ``` 或者,多平台同时构建如下: ``` - $ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 bash - $ for GOOS in darwin linux; do - > for GOARCH in 386 amd64; do - > export GOOS GOARCH - > go build -v -o myapp-$GOOS-$GOARCH - > done - > done + # 第一步, 运行Go容器 + docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 bash + + # 第二步,多平台构建应用 + for GOOS in darwin linux; do + for GOARCH in 386 amd64; do + export GOOS GOARCH + go build -v -o myapp-$GOOS-$GOARCH + done + done ``` - 容器测试 diff --git a/llm/meta.yml b/llm/meta.yml index 8becc9eb..5182006b 100644 --- a/llm/meta.yml +++ b/llm/meta.yml @@ -1,4 +1,3 @@ -# key为镜像的tag,value为构建对应tag镜像的Dockerfile保存路径 fastchat-pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: path: llm/fastchat-pytorch2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile chatglm2_6b-pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: diff --git a/oneapi-basekit/meta.yml b/oneapi-basekit/meta.yml index db8d9d89..84feba9a 100644 --- a/oneapi-basekit/meta.yml +++ b/oneapi-basekit/meta.yml @@ -1,5 +1,3 @@ -# key is the image tag, value is the Dockerfile path for creating the image with corresponding tag - 2024.2.0-oe2403lts: path: oneapi-basekit/2024.2.0/24.03-lts/Dockerfile arch: x86_64 diff --git a/oneapi-runtime/meta.yml b/oneapi-runtime/meta.yml index c330bf6c..9203d156 100644 --- a/oneapi-runtime/meta.yml +++ b/oneapi-runtime/meta.yml @@ -1,5 +1,3 @@ -# key is the image tag, value is the Dockerfile path for creating the image with corresponding tag - 2024.2.0-oe2403lts: path: oneapi-runtime/2024.2.0/24.03-lts/Dockerfile arch: x86_64 -- Gitee From 91e9f3dcb2d4194da690637126cd607f6a06d65a Mon Sep 17 00:00:00 2001 From: tzing_t Date: Fri, 5 Jul 2024 07:16:11 +0000 Subject: [PATCH 08/12] add config para --- nginx/1.25.4/22.03-lts-sp3/Dockerfile | 35 +++++++++++++++++++++------ 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/nginx/1.25.4/22.03-lts-sp3/Dockerfile b/nginx/1.25.4/22.03-lts-sp3/Dockerfile index c28c5459..075d6794 100644 --- a/nginx/1.25.4/22.03-lts-sp3/Dockerfile +++ b/nginx/1.25.4/22.03-lts-sp3/Dockerfile @@ -4,17 +4,36 @@ FROM ${BASE} ARG TARGETARCH ARG VERSION=1.25.4 -RUN yum -y install gcc openssl-devel make && \ - yum clean all - -RUN curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ +RUN yum -y install gcc openssl-devel make libxml2-devel libxslt-devel gd-devel perl\ + GeoIP-devel gperftools-devel && \ + yum clean all && \ + curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ tar -zxvf /tmp/nginx.tar.gz -C /tmp && \ cd /tmp/nginx-${VERSION} && \ + mkdir -p /var/tmp/nginx/ && \ ./configure \ - --sbin-path=/usr/local/nginx \ - --conf-path=/etc/nginx/nginx.conf \ - --pid-path=/usr/local/nginx/nginx.pid \ - --with-http_ssl_module && \ + --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx \ + --modules-path=/usr/local/nginx/modules --conf-path=/etc/nginx/nginx.conf \ + --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log \ + --http-client-body-temp-path=/var/tmp/nginx/client \ + --http-fastcgi-temp-path=/var/tmp/nginx/fcgi \ + --http-proxy-temp-path=/var/tmp/nginx/proxy \ + --http-scgi-temp-path=/var/tmp/nginx/scgi \ + --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ + --pid-path=/var/run/nginx.pid \ + --lock-path=/var/run/nginx.lock \ + --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module \ + --with-http_realip_module --with-http_addition_module \ + --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic \ + --with-http_geoip_module=dynamic --with-http_sub_module \ + --with-http_dav_module --with-http_flv_module --with-http_mp4_module \ + --with-http_gunzip_module --with-http_gzip_static_module \ + --with-http_random_index_module --with-http_secure_link_module \ + --with-http_degradation_module --with-http_slice_module \ + --with-http_perl_module=dynamic --with-http_auth_request_module \ + --with-mail=dynamic --with-mail_ssl_module --with-openssl-opt=yes \ + --with-pcre --with-pcre-jit --with-stream=dynamic \ + --with-stream_ssl_module --with-google_perftools_module --with-debug && \ make && make install && \ rm -rf /tmp/nginx.tar.gz /tmp/nginx-${VERSION} -- Gitee From 646ac40df72ab3c50202956eadaf7ee2ba87ae91 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 9 Jul 2024 09:15:41 +0800 Subject: [PATCH 09/12] golang: support version 1.22.5 on oe2203sp4 --- README.en.md | 34 +++++++- README.md | 35 ++++++-- alertmanager/meta.yml | 2 +- bind9/meta.yml | 2 +- bisheng-jdk/meta.yml | 6 +- bwa/meta.yml | 2 +- cann/meta.yml | 4 +- dlrm/meta.yml | 2 +- dotnet-aspnet/meta.yml | 2 +- dotnet-deps/meta.yml | 2 +- dotnet-runtime/meta.yml | 2 +- go/1.22.5/22.03-lts-sp4/Dockerfile | 32 ++++++++ go/README.md | 126 +++++++++++++++++++---------- go/doc/image-info.yml | 93 +++++++++++++++++++++ go/doc/picture/logo.png | Bin 0 -> 28622 bytes go/meta.yml | 4 + grafana-agent/meta.yml | 2 +- grafana/meta.yml | 4 +- httpd/meta.yml | 4 +- kafka/meta.yml | 2 +- llm-server/meta.yml | 4 +- llm/meta.yml | 7 +- loki/meta.yml | 2 +- memcached/meta.yml | 4 +- mimir/meta.yml | 2 +- mlflow/meta.yml | 5 +- mysql/meta.yml | 2 +- nginx/meta.yml | 8 +- oneapi-basekit/meta.yml | 5 +- oneapi-runtime/meta.yml | 5 +- openjdk/meta.yml | 2 +- postgres/meta.yml | 4 +- prometheus-pushgateway/meta.yml | 2 +- prometheus/meta.yml | 4 +- pytorch/meta.yml | 2 +- redis/meta.yml | 4 +- spark/meta.yml | 11 +-- squid/meta.yml | 2 +- telegraf/meta.yml | 2 +- traefik/meta.yml | 2 +- zookeeper/meta.yml | 2 +- 41 files changed, 325 insertions(+), 116 deletions(-) create mode 100644 go/1.22.5/22.03-lts-sp4/Dockerfile create mode 100644 go/doc/image-info.yml create mode 100644 go/doc/picture/logo.png create mode 100644 go/meta.yml diff --git a/README.en.md b/README.en.md index 4e4aec14..6dd67b05 100644 --- a/README.en.md +++ b/README.en.md @@ -30,9 +30,11 @@ After the official images are published, we will push to every remote container - [22.09](https://archives.openeuler.openatom.cn/openEuler-22.09/docker_img/) - [22.03-lts-sp1](https://repo.openeuler.org/openEuler-22.03-LTS-SP1/docker_img/) - [22.03-lts-sp2](https://repo.openeuler.org/openEuler-22.03-LTS-SP2/docker_img/) - - [22.03-lts-sp3, 22.03, latest](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp3](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp4, 22.03](https://repo.openeuler.org/openEuler-22.03-LTS-SP4/docker_img/) - [23.03](https://repo.openeuler.org/openEuler-23.03/docker_img/) - [23.09](https://repo.openeuler.org/openEuler-23.09/docker_img/) + - [24.03-lts, latest](https://repo.openeuler.org/openEuler-24.03-LTS/docker_img/) - Path rule:`openeuler/[openEuler version]/Dockerfile`, such as: openEuler 21.09 Dockerfile is under `openeuler/21.09/Dockerfile` path. @@ -76,13 +78,37 @@ The content is as follows: Store application-related images +All openEuler application images contain a `meta.yml` file,which stores the image tag info,the file path is: `[app-name]/meta.yml` + + - `meta.yml` + + The example is as follows: + + # spark/meta.yml + 3.3.1-oe2203lts: + path: spark/3.3.1/22.03-lts/Dockerfile + 3.3.2-oe2203lts: + path: spark/3.3.2/22.03-lts/Dockerfile + + Configuration item description: + | Configuration item | Required or not | Description | Example | + |--|--|--|--| + | path | yes | Relative path of the image dockerfile | spark/3.3.1/22.03-lts/Dockerfile | + | arch | no | This configuration is required when only one architecture is supported. By default, it supports arm64 and amd64 architectures.| x86_64,only x86_64 or aarch64 can be configured. | + #### Available Container Repo -- Hub oepkgs: https://hub.oepkgs.net/ +- [hub.oepkgs.net](https://hub.oepkgs.net/) + +- [hub.docker.com](https://hub.docker.com/) + +- [quay.io](https://quay.io/) -- AtomHub: https://atomhub.openatom.cn/ #### Contributions -Welcome to submit your idea, issue and pull request. +1. After the pull request is merged, the CI process will automatically publish the image. +2. After the `dockerfile` is added or modified, the CI process will automatically publish the image. +3. After the `README.md` is added or modified, the CI process will automatically publish the image README information. +4. Welcome to submit image test cases to the project `eulerPublisher`; The automatic publishing process only checks whether the image can be successfully constructed if the image has no test cases. diff --git a/README.md b/README.md index 2b9b31d1..52874131 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,11 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 - [22.09](https://archives.openeuler.openatom.cn/openEuler-22.09/docker_img/) - [22.03-lts-sp1](https://repo.openeuler.org/openEuler-22.03-LTS-SP1/docker_img/) - [22.03-lts-sp2](https://repo.openeuler.org/openEuler-22.03-LTS-SP2/docker_img/) - - [22.03-lts-sp3, 22.03, latest](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp3](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp4, 22.03](https://repo.openeuler.org/openEuler-22.03-LTS-SP4/docker_img/) - [23.03](https://repo.openeuler.org/openEuler-23.03/docker_img/) - [23.09](https://repo.openeuler.org/openEuler-23.09/docker_img/) + - [24.03-lts, latest](https://repo.openeuler.org/openEuler-24.03-LTS/docker_img/) - 存放路径规则:`openeuler/[openEuler版本号]/Dockerfile`, 例如:openEuler 21.09的Dockerfile位于`openeuler/21.09/Dockerfile`。 @@ -73,16 +75,39 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 - `doc/picture/` 存放应用相关的图片 + +每个应用镜像,包含一个meta.yml文件,存放该镜像的版本信息,文件路径为:`[应用名]/meta.yml` + + - `meta.yml` + + 示例如下: + + # spark/meta.yml + 3.3.1-oe2203lts: + path: spark/3.3.1/22.03-lts/Dockerfile + 3.3.2-oe2203lts: + path: spark/3.3.2/22.03-lts/Dockerfile + arch: aarch64 + + 配置项说明: + | 配置项 | 是否必填 | 配置说明 | 配置示例 | + |--|--|--|--| + | path | 是 | dockerfile相对路径 | spark/3.3.1/22.03-lts/Dockerfile | + | arch | 否 | 用于发布单架构镜像时指定镜像架构;无该字段时,默认发布x86_64和aarch64的双架构镜像。| x86_64,配置仅支持x86_64或aarch64 | #### 国内镜像仓 目前支持的第三方国内镜像仓有: -- Hub oepkgs: https://hub.oepkgs.net/ +- [hub.oepkgs.net](https://hub.oepkgs.net/) -- AtomHub: https://atomhub.openatom.cn/ +- [hub.docker.com](https://hub.docker.com/) +- [quay.io](https://quay.io/) -#### 参与贡献 +#### 镜像发布指南 -欢迎发表想法、提交问题、贡献代码。 +1. 提交镜像的PR合入后,会触发CI流程自动发布镜像。 +2. 镜像dockerfile文件新增和修改合入后,会触发CI流程自动发布镜像。 +3. 镜像README.md文件新增和修改合入后,会触发CI流程自动发布镜像README信息。 +4. 欢迎在`eulerPublisher`提交镜像的测试用例;当镜像没有测试用例时,自动发布流程中仅检查能否成功构建镜像。 \ No newline at end of file diff --git a/alertmanager/meta.yml b/alertmanager/meta.yml index aaa2076e..1e37b4a2 100644 --- a/alertmanager/meta.yml +++ b/alertmanager/meta.yml @@ -1,2 +1,2 @@ 0.27.0-oe2203sp3: - - altermanager/0.27.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: altermanager/0.27.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bind9/meta.yml b/bind9/meta.yml index f596b4c3..adfae706 100644 --- a/bind9/meta.yml +++ b/bind9/meta.yml @@ -1,2 +1,2 @@ 9.18.24-oe2203sp3: - - bind9/9.18.24/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: bind9/9.18.24/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bisheng-jdk/meta.yml b/bisheng-jdk/meta.yml index 59d29077..42bc5ec8 100644 --- a/bisheng-jdk/meta.yml +++ b/bisheng-jdk/meta.yml @@ -1,6 +1,6 @@ 1.8.0-oe2203lts: - bisheng-jdk/1.8.0/22.03-lts/Dockerfile + path: bisheng-jdk/1.8.0/22.03-lts/Dockerfile 1.8.0-oe2203sp3: - bisheng-jdk/1.8.0/22.03-lts-sp3/Dockerfile + path: bisheng-jdk/1.8.0/22.03-lts-sp3/Dockerfile 17.0.10-oe2203sp3: - bisheng-jdk/17.0.10/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: bisheng-jdk/17.0.10/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bwa/meta.yml b/bwa/meta.yml index c3110f54..bee328df 100644 --- a/bwa/meta.yml +++ b/bwa/meta.yml @@ -1,2 +1,2 @@ 0.7.18-oe2203sp3: - bwa/0.7.18/22.03-lts-sp3/Dcokerfile \ No newline at end of file + path: bwa/0.7.18/22.03-lts-sp3/Dcokerfile \ No newline at end of file diff --git a/cann/meta.yml b/cann/meta.yml index 43451cba..afa77831 100644 --- a/cann/meta.yml +++ b/cann/meta.yml @@ -1,4 +1,2 @@ -# key为镜像的tag,value为构建对应tag镜像的Dockerfile保存路径 - cann7.0.RC1.alpha002-oe2203sp2: - - cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile + path: cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile diff --git a/dlrm/meta.yml b/dlrm/meta.yml index 07db3669..1636977c 100644 --- a/dlrm/meta.yml +++ b/dlrm/meta.yml @@ -1,2 +1,2 @@ 1.0-oe2203sp3: - dlrm/1.0/22.03-lts-sp3/Dockerfile + path: dlrm/1.0/22.03-lts-sp3/Dockerfile diff --git a/dotnet-aspnet/meta.yml b/dotnet-aspnet/meta.yml index 5c4db1ef..5ca0b8ce 100644 --- a/dotnet-aspnet/meta.yml +++ b/dotnet-aspnet/meta.yml @@ -1,2 +1,2 @@ 8.0.3-oe2203sp3: - dotnet-aspnet/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-aspnet/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/dotnet-deps/meta.yml b/dotnet-deps/meta.yml index 24c7a255..1fc730ae 100644 --- a/dotnet-deps/meta.yml +++ b/dotnet-deps/meta.yml @@ -1,2 +1,2 @@ 8.0-oe2203sp3: - - dotnet-deps/8.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-deps/8.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/dotnet-runtime/meta.yml b/dotnet-runtime/meta.yml index 50c82d63..cbac1ae7 100644 --- a/dotnet-runtime/meta.yml +++ b/dotnet-runtime/meta.yml @@ -1,2 +1,2 @@ 8.0.3-oe2203sp3: - - dotnet-runtime/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-runtime/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/go/1.22.5/22.03-lts-sp4/Dockerfile b/go/1.22.5/22.03-lts-sp4/Dockerfile new file mode 100644 index 00000000..90b033e1 --- /dev/null +++ b/go/1.22.5/22.03-lts-sp4/Dockerfile @@ -0,0 +1,32 @@ +ARG BASE=openeuler/openeuler:22.03-lts-sp4 +FROM ${BASE} + +ARG TARGETARCH +ARG LOCAL_PATH=/usr/local + +ENV GOPATH=/go +ENV GOTOOLCHAIN=local +ENV GOLANG_VERSION=1.22.5 +ENV GO_ROOT=${LOCAL_PATH}/go +ENV PATH=$GOPATH/bin:$GO_ROOT/bin:$PATH + +RUN set -eux; \ + yum update -y && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ + curl -fSL -o ${LOCAL_PATH}/go.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-${TARGETARCH}.tar.gz; \ + tar -xvf ${LOCAL_PATH}/go.tar.gz -C ${LOCAL_PATH}; \ + rm -f ${LOCAL_PATH}/go.tar.gz + +RUN set -eux; \ + find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}" \; && \ + touch ${GO_ROOT}/pkg; \ + find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}" \; && \ + mkdir -p ${GO_ROOT}/bin/linux_${TARGETARCH}; \ + ln -sf ${GO_ROOT}/bin/go ${GO_ROOT}/bin/linux_${TARGETARCH}/go; \ + ln -sf ${GO_ROOT}/bin/gofmt ${GO_ROOT}/bin/linux_${TARGETARCH}/gofmt + +RUN mkdir -p "$GOPATH/src" "$GOPATH/bin"; \ + chmod -R 1777 "$GOPATH" + +WORKDIR $GOPATH + +CMD ["go", "version"] \ No newline at end of file diff --git a/go/README.md b/go/README.md index 0359002c..a486dbb3 100644 --- a/go/README.md +++ b/go/README.md @@ -1,53 +1,95 @@ -#golang - - # Quick reference -- The official golang docker image. - -- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative) - -- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community) +- The official Go docker image. -# Build reference +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). -1. Build images and push: -```shell -docker buildx build -t "openeuler/golang:$VERSION" --platform linux/amd64,linux/arm64 . --push -``` +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). -We are using `buildx` in here to generate multi-arch images, see more in [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) +# Go | openEuler -2. Run: -```shell -docker run -d openeuler/golang:1.17.3 -``` +Current Go(Golang) docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. -# How to use this image -## Start a Go instance in your app -The most staightforward way to use this image is to use a Go container as both the build and runtime enviroment. -In your Dockfile, writhing something along the lines of the following will compile and run your project. -```shell -FROM openeuler/golang:1.17.3 +Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language. -WORKDIR /app - -COPY go.mod go.sum ./ -RUN go mod download && go mod verify -COPY . . -RUN go build -v -o /usr/local/bin/app ./... - -CMD ["app"] -``` -You can then build and run the Docker image: -```shell -docker build -t my-golang-app . -docker run -it --rm --name my_app my-golang-app -``` +Learn more on [Go website](https://go.dev/doc/). # Supported tags and respective Dockerfile links -- 1.17.3-22.03-lts: golang v1.17.3, openEuler 22.03 LTS - -## Operating System -Linux/Unix, ARM64 or x86-64 architecture. +The tag of each Go docker image is consist of the version of Go and the version of basic image. The details are as follows +| Tags | Currently | Architectures| +|--|--|--| +|[1.17.3-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.17.3/22.03-lts/Dockerfile)| go 1.17.3 on openEuler 22.03-LTS | amd64, arm64 | +|[1.22.5-oe2203sp4](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.22.5/22.03-lts-sp4/Dockerfile)| go 1.22.5 on openEuler 22.03-LTS-SP4 | amd64, arm64 | + +# Usage + +Note: `/go` is world-writable to allow flexibility in the user which runs the container (for example, in a container started with `--user 1000:1000`, running go get `github.com/example/...` into the default `$GOPATH` will succeed). While the `777` directory would be insecure on a regular host setup, there are not typically other processes or users inside the container, so this is equivalent to `700` for Docker usage, but allowing for `--user` flexibility. + + - Start a Go instance in your app + + The most straightforward way to use this image is to use a Go container as both the build and runtime environment. In your Dockerfile, writing something along the lines of the following will compile and run your project (assuming it uses go.mod for dependency management): + + ``` + # Dockerfile + FROM openeuler/go:1.22.5-oe2203sp4 + + WORKDIR /usr/src/app + COPY go.mod go.sum ./ + RUN go mod download && go mod verify + COPY . . + RUN go build -v -o /usr/local/bin/app ./... + CMD ["app"] + ``` + + You can then build and run the Docker image: + ``` + docker build -t my-golang-app . + docker run -it --rm --name my-running-app my-golang-app + ``` + + - Compile your app inside the Docker container + + There may be occasions where it is not appropriate to run your app inside a container. To compile, but not run your app inside the Docker instance, you can write something like: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 go build -v + ``` + This will add your current directory as a volume to the container, set the working directory to the volume, and run the command go build which will tell go to compile the project in the working directory and output the executable to myapp. Alternatively, if you have a Makefile, you can run the make command inside your container. + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 make + ``` + + - Cross-compile your app inside the Docker container + If you need to compile your application for a platform other than linux/amd64 (such as windows/386): + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 openeuler/go:1.22.5-oe2203sp4 go build -v + ``` + Alternatively, you can build for multiple platforms at once: + ```bash + + # First, start a Go instance + docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 bash + + # Second, build for multiple platforms + for GOOS in darwin linux; do + for GOARCH in 386 amd64; do + export GOOS GOARCH + go build -v -o myapp-$GOOS-$GOARCH + done + done + ``` + +- View container running logs + + ```bash + docker logs -f my-go + ``` + +- To get an interactive shell + + ```bash + docker exec -it my-go /bin/bash + ``` + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/go/doc/image-info.yml b/go/doc/image-info.yml new file mode 100644 index 00000000..d056ece6 --- /dev/null +++ b/go/doc/image-info.yml @@ -0,0 +1,93 @@ +name: go +category: others +description: Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + Go镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[1.17.3-oe2203lts](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.17.3/22.03-lts/Dockerfile)| go 1.17.3 on openEuler 22.03-LTS | amd64, arm64 | + |[1.22.5-oe2203sp4](https://gitee.com/openeuler/openeuler-docker-images/blob/master/go/1.22.5/22.03-lts-sp4/Dockerfile)| go 1.22.5 on openEuler 22.03-LTS-SP4 | amd64, arm64 | + + 注意,以下`{Tag}`的值按照需求,替换为上述表格中的tag内容。 + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/go:{Tag} + ``` + +usage: | + `openeuler/go`最直接的方法是作为构建和运行时环境,编写类似以下内容的Dockerfile代码编译和运行: + - 运行Go实例 + 使用`openeuler/go`容器作为构建和运行时环境,可按照以下内容编译并运行项目 + ``` + # Dockerfile + FROM openeuler/go:1.22.5-oe2203sp4 + + WORKDIR /usr/src/app + COPY go.mod go.sum ./ + RUN go mod download && go mod verify + COPY . . + RUN go build -v -o /usr/local/bin/app ./... + CMD ["app"] + ``` + + 构建并运行Docker容器 + ``` + docker build -t my-golang-app . + docker run -it --rm --name my-running-app my-golang-app + ``` + + - 编译Go项目 + + 在某些情况下,在容器内运行应用程序可能并不合适。要编译但不在Docker实例内运行应用程序,可采用如下方式: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 go build -v + ``` + 这会将当前目录作为卷添加到容器中,将工作目录设置为该卷,然后运行执行`go build`编译项目中的代码,输出为可执行文件myapp。如果项目中包含Makefile编译文件,可以在容器内通过make命令编译: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 make + ``` + + - 交叉编译 + + 如果需要为除去linux/amd64之外的其他平台编译应用(例如:windows/386), 可采用如下方式: + ``` + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 openeuler/go:1.22.5-oe2203sp4 go build -v + ``` + 或者,多平台同时构建如下: + ``` + # 第一步, 运行Go容器 + docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 bash + + # 第二步,多平台构建应用 + for GOOS in darwin linux; do + for GOARCH in 386 amd64; do + export GOOS GOARCH + go build -v -o myapp-$GOOS-$GOARCH + done + done + ``` + + - 容器测试 + + 使用以下方式验证镜像内安装的Go环境: + ``` + docker run -it openeuler/go:{Tag} go --version + ``` + 例如,`{Tag}`为`1.22.5-oe2203sp4`时,返回类似如下信息则证明环境正常: + ``` + go version go1.22.5 linux/amd64 + ``` + +license: BSD 3-Clause license +similar_packages: + - N/A +dependency: + - N/A \ No newline at end of file diff --git a/go/doc/picture/logo.png b/go/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7931b692996253a04a7088f9a5d7513e823a08bf GIT binary patch literal 28622 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 Date: Wed, 10 Jul 2024 11:04:53 +0800 Subject: [PATCH 10/12] Revert "add config para" This reverts commit 91e9f3dcb2d4194da690637126cd607f6a06d65a. --- nginx/1.25.4/22.03-lts-sp3/Dockerfile | 35 ++++++--------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/nginx/1.25.4/22.03-lts-sp3/Dockerfile b/nginx/1.25.4/22.03-lts-sp3/Dockerfile index 075d6794..c28c5459 100644 --- a/nginx/1.25.4/22.03-lts-sp3/Dockerfile +++ b/nginx/1.25.4/22.03-lts-sp3/Dockerfile @@ -4,36 +4,17 @@ FROM ${BASE} ARG TARGETARCH ARG VERSION=1.25.4 -RUN yum -y install gcc openssl-devel make libxml2-devel libxslt-devel gd-devel perl\ - GeoIP-devel gperftools-devel && \ - yum clean all && \ - curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ +RUN yum -y install gcc openssl-devel make && \ + yum clean all + +RUN curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ tar -zxvf /tmp/nginx.tar.gz -C /tmp && \ cd /tmp/nginx-${VERSION} && \ - mkdir -p /var/tmp/nginx/ && \ ./configure \ - --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx \ - --modules-path=/usr/local/nginx/modules --conf-path=/etc/nginx/nginx.conf \ - --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log \ - --http-client-body-temp-path=/var/tmp/nginx/client \ - --http-fastcgi-temp-path=/var/tmp/nginx/fcgi \ - --http-proxy-temp-path=/var/tmp/nginx/proxy \ - --http-scgi-temp-path=/var/tmp/nginx/scgi \ - --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ - --pid-path=/var/run/nginx.pid \ - --lock-path=/var/run/nginx.lock \ - --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module \ - --with-http_realip_module --with-http_addition_module \ - --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic \ - --with-http_geoip_module=dynamic --with-http_sub_module \ - --with-http_dav_module --with-http_flv_module --with-http_mp4_module \ - --with-http_gunzip_module --with-http_gzip_static_module \ - --with-http_random_index_module --with-http_secure_link_module \ - --with-http_degradation_module --with-http_slice_module \ - --with-http_perl_module=dynamic --with-http_auth_request_module \ - --with-mail=dynamic --with-mail_ssl_module --with-openssl-opt=yes \ - --with-pcre --with-pcre-jit --with-stream=dynamic \ - --with-stream_ssl_module --with-google_perftools_module --with-debug && \ + --sbin-path=/usr/local/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --pid-path=/usr/local/nginx/nginx.pid \ + --with-http_ssl_module && \ make && make install && \ rm -rf /tmp/nginx.tar.gz /tmp/nginx-${VERSION} -- Gitee From 2f800564996c0718dd47d6975dc7b65ff3279d6f Mon Sep 17 00:00:00 2001 From: baigj Date: Wed, 10 Jul 2024 03:07:19 +0000 Subject: [PATCH 11/12] Revert "Revert "add config para"" This reverts commit c51cae6898f767f4475b78538b5ed434eaaeafd5. --- nginx/1.25.4/22.03-lts-sp3/Dockerfile | 35 +++++++++++++++++++++------ 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/nginx/1.25.4/22.03-lts-sp3/Dockerfile b/nginx/1.25.4/22.03-lts-sp3/Dockerfile index c28c5459..075d6794 100644 --- a/nginx/1.25.4/22.03-lts-sp3/Dockerfile +++ b/nginx/1.25.4/22.03-lts-sp3/Dockerfile @@ -4,17 +4,36 @@ FROM ${BASE} ARG TARGETARCH ARG VERSION=1.25.4 -RUN yum -y install gcc openssl-devel make && \ - yum clean all - -RUN curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ +RUN yum -y install gcc openssl-devel make libxml2-devel libxslt-devel gd-devel perl\ + GeoIP-devel gperftools-devel && \ + yum clean all && \ + curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ tar -zxvf /tmp/nginx.tar.gz -C /tmp && \ cd /tmp/nginx-${VERSION} && \ + mkdir -p /var/tmp/nginx/ && \ ./configure \ - --sbin-path=/usr/local/nginx \ - --conf-path=/etc/nginx/nginx.conf \ - --pid-path=/usr/local/nginx/nginx.pid \ - --with-http_ssl_module && \ + --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx \ + --modules-path=/usr/local/nginx/modules --conf-path=/etc/nginx/nginx.conf \ + --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log \ + --http-client-body-temp-path=/var/tmp/nginx/client \ + --http-fastcgi-temp-path=/var/tmp/nginx/fcgi \ + --http-proxy-temp-path=/var/tmp/nginx/proxy \ + --http-scgi-temp-path=/var/tmp/nginx/scgi \ + --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ + --pid-path=/var/run/nginx.pid \ + --lock-path=/var/run/nginx.lock \ + --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module \ + --with-http_realip_module --with-http_addition_module \ + --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic \ + --with-http_geoip_module=dynamic --with-http_sub_module \ + --with-http_dav_module --with-http_flv_module --with-http_mp4_module \ + --with-http_gunzip_module --with-http_gzip_static_module \ + --with-http_random_index_module --with-http_secure_link_module \ + --with-http_degradation_module --with-http_slice_module \ + --with-http_perl_module=dynamic --with-http_auth_request_module \ + --with-mail=dynamic --with-mail_ssl_module --with-openssl-opt=yes \ + --with-pcre --with-pcre-jit --with-stream=dynamic \ + --with-stream_ssl_module --with-google_perftools_module --with-debug && \ make && make install && \ rm -rf /tmp/nginx.tar.gz /tmp/nginx-${VERSION} -- Gitee From 00899485ce3d5ecab70182fba0e734ad18f80833 Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 9 Jul 2024 09:15:41 +0800 Subject: [PATCH 12/12] parent f34af1bc58625de1026fee57e1dead077f7829f0 author GuangJie1 1720487741 +0800 committer GuangJie1 1720581463 +0800 golang: support version 1.22.5 on oe2203sp4 golang: modify line break review: code review idea modify Revert "add config para" This reverts commit 91e9f3dcb2d4194da690637126cd607f6a06d65a. --- README.en.md | 34 +++++++++++++++++++++++--- README.md | 35 +++++++++++++++++++++++---- alertmanager/meta.yml | 2 +- bind9/meta.yml | 2 +- bisheng-jdk/meta.yml | 6 ++--- bwa/meta.yml | 2 +- cann/meta.yml | 4 +-- dlrm/meta.yml | 2 +- dotnet-aspnet/meta.yml | 2 +- dotnet-deps/meta.yml | 2 +- dotnet-runtime/meta.yml | 2 +- go/1.22.5/22.03-lts-sp4/Dockerfile | 8 +++--- go/README.md | 28 ++++++++++++--------- go/doc/image-info.yml | 27 ++++++++++++--------- grafana-agent/meta.yml | 2 +- grafana/meta.yml | 4 +-- httpd/meta.yml | 4 +-- kafka/meta.yml | 2 +- llm-server/meta.yml | 4 +-- llm/meta.yml | 7 ++---- loki/meta.yml | 2 +- memcached/meta.yml | 4 +-- mimir/meta.yml | 2 +- mlflow/meta.yml | 5 ++-- mysql/meta.yml | 2 +- nginx/1.25.4/22.03-lts-sp3/Dockerfile | 35 ++++++--------------------- nginx/meta.yml | 8 +++--- oneapi-basekit/meta.yml | 5 ++-- oneapi-runtime/meta.yml | 5 ++-- openjdk/meta.yml | 2 +- postgres/meta.yml | 4 +-- prometheus-pushgateway/meta.yml | 2 +- prometheus/meta.yml | 4 +-- pytorch/meta.yml | 2 +- redis/meta.yml | 4 +-- spark/meta.yml | 11 +++------ squid/meta.yml | 2 +- telegraf/meta.yml | 2 +- traefik/meta.yml | 2 +- zookeeper/meta.yml | 2 +- 40 files changed, 157 insertions(+), 127 deletions(-) diff --git a/README.en.md b/README.en.md index 4e4aec14..6dd67b05 100644 --- a/README.en.md +++ b/README.en.md @@ -30,9 +30,11 @@ After the official images are published, we will push to every remote container - [22.09](https://archives.openeuler.openatom.cn/openEuler-22.09/docker_img/) - [22.03-lts-sp1](https://repo.openeuler.org/openEuler-22.03-LTS-SP1/docker_img/) - [22.03-lts-sp2](https://repo.openeuler.org/openEuler-22.03-LTS-SP2/docker_img/) - - [22.03-lts-sp3, 22.03, latest](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp3](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp4, 22.03](https://repo.openeuler.org/openEuler-22.03-LTS-SP4/docker_img/) - [23.03](https://repo.openeuler.org/openEuler-23.03/docker_img/) - [23.09](https://repo.openeuler.org/openEuler-23.09/docker_img/) + - [24.03-lts, latest](https://repo.openeuler.org/openEuler-24.03-LTS/docker_img/) - Path rule:`openeuler/[openEuler version]/Dockerfile`, such as: openEuler 21.09 Dockerfile is under `openeuler/21.09/Dockerfile` path. @@ -76,13 +78,37 @@ The content is as follows: Store application-related images +All openEuler application images contain a `meta.yml` file,which stores the image tag info,the file path is: `[app-name]/meta.yml` + + - `meta.yml` + + The example is as follows: + + # spark/meta.yml + 3.3.1-oe2203lts: + path: spark/3.3.1/22.03-lts/Dockerfile + 3.3.2-oe2203lts: + path: spark/3.3.2/22.03-lts/Dockerfile + + Configuration item description: + | Configuration item | Required or not | Description | Example | + |--|--|--|--| + | path | yes | Relative path of the image dockerfile | spark/3.3.1/22.03-lts/Dockerfile | + | arch | no | This configuration is required when only one architecture is supported. By default, it supports arm64 and amd64 architectures.| x86_64,only x86_64 or aarch64 can be configured. | + #### Available Container Repo -- Hub oepkgs: https://hub.oepkgs.net/ +- [hub.oepkgs.net](https://hub.oepkgs.net/) + +- [hub.docker.com](https://hub.docker.com/) + +- [quay.io](https://quay.io/) -- AtomHub: https://atomhub.openatom.cn/ #### Contributions -Welcome to submit your idea, issue and pull request. +1. After the pull request is merged, the CI process will automatically publish the image. +2. After the `dockerfile` is added or modified, the CI process will automatically publish the image. +3. After the `README.md` is added or modified, the CI process will automatically publish the image README information. +4. Welcome to submit image test cases to the project `eulerPublisher`; The automatic publishing process only checks whether the image can be successfully constructed if the image has no test cases. diff --git a/README.md b/README.md index 2b9b31d1..52874131 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,11 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 - [22.09](https://archives.openeuler.openatom.cn/openEuler-22.09/docker_img/) - [22.03-lts-sp1](https://repo.openeuler.org/openEuler-22.03-LTS-SP1/docker_img/) - [22.03-lts-sp2](https://repo.openeuler.org/openEuler-22.03-LTS-SP2/docker_img/) - - [22.03-lts-sp3, 22.03, latest](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp3](https://repo.openeuler.org/openEuler-22.03-LTS-SP3/docker_img/) + - [22.03-lts-sp4, 22.03](https://repo.openeuler.org/openEuler-22.03-LTS-SP4/docker_img/) - [23.03](https://repo.openeuler.org/openEuler-23.03/docker_img/) - [23.09](https://repo.openeuler.org/openEuler-23.09/docker_img/) + - [24.03-lts, latest](https://repo.openeuler.org/openEuler-24.03-LTS/docker_img/) - 存放路径规则:`openeuler/[openEuler版本号]/Dockerfile`, 例如:openEuler 21.09的Dockerfile位于`openeuler/21.09/Dockerfile`。 @@ -73,16 +75,39 @@ openEuler的基础镜像由社区官方发布,目前发布在[openEuler镜像 - `doc/picture/` 存放应用相关的图片 + +每个应用镜像,包含一个meta.yml文件,存放该镜像的版本信息,文件路径为:`[应用名]/meta.yml` + + - `meta.yml` + + 示例如下: + + # spark/meta.yml + 3.3.1-oe2203lts: + path: spark/3.3.1/22.03-lts/Dockerfile + 3.3.2-oe2203lts: + path: spark/3.3.2/22.03-lts/Dockerfile + arch: aarch64 + + 配置项说明: + | 配置项 | 是否必填 | 配置说明 | 配置示例 | + |--|--|--|--| + | path | 是 | dockerfile相对路径 | spark/3.3.1/22.03-lts/Dockerfile | + | arch | 否 | 用于发布单架构镜像时指定镜像架构;无该字段时,默认发布x86_64和aarch64的双架构镜像。| x86_64,配置仅支持x86_64或aarch64 | #### 国内镜像仓 目前支持的第三方国内镜像仓有: -- Hub oepkgs: https://hub.oepkgs.net/ +- [hub.oepkgs.net](https://hub.oepkgs.net/) -- AtomHub: https://atomhub.openatom.cn/ +- [hub.docker.com](https://hub.docker.com/) +- [quay.io](https://quay.io/) -#### 参与贡献 +#### 镜像发布指南 -欢迎发表想法、提交问题、贡献代码。 +1. 提交镜像的PR合入后,会触发CI流程自动发布镜像。 +2. 镜像dockerfile文件新增和修改合入后,会触发CI流程自动发布镜像。 +3. 镜像README.md文件新增和修改合入后,会触发CI流程自动发布镜像README信息。 +4. 欢迎在`eulerPublisher`提交镜像的测试用例;当镜像没有测试用例时,自动发布流程中仅检查能否成功构建镜像。 \ No newline at end of file diff --git a/alertmanager/meta.yml b/alertmanager/meta.yml index aaa2076e..1e37b4a2 100644 --- a/alertmanager/meta.yml +++ b/alertmanager/meta.yml @@ -1,2 +1,2 @@ 0.27.0-oe2203sp3: - - altermanager/0.27.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: altermanager/0.27.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bind9/meta.yml b/bind9/meta.yml index f596b4c3..adfae706 100644 --- a/bind9/meta.yml +++ b/bind9/meta.yml @@ -1,2 +1,2 @@ 9.18.24-oe2203sp3: - - bind9/9.18.24/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: bind9/9.18.24/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bisheng-jdk/meta.yml b/bisheng-jdk/meta.yml index 59d29077..42bc5ec8 100644 --- a/bisheng-jdk/meta.yml +++ b/bisheng-jdk/meta.yml @@ -1,6 +1,6 @@ 1.8.0-oe2203lts: - bisheng-jdk/1.8.0/22.03-lts/Dockerfile + path: bisheng-jdk/1.8.0/22.03-lts/Dockerfile 1.8.0-oe2203sp3: - bisheng-jdk/1.8.0/22.03-lts-sp3/Dockerfile + path: bisheng-jdk/1.8.0/22.03-lts-sp3/Dockerfile 17.0.10-oe2203sp3: - bisheng-jdk/17.0.10/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: bisheng-jdk/17.0.10/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/bwa/meta.yml b/bwa/meta.yml index c3110f54..bee328df 100644 --- a/bwa/meta.yml +++ b/bwa/meta.yml @@ -1,2 +1,2 @@ 0.7.18-oe2203sp3: - bwa/0.7.18/22.03-lts-sp3/Dcokerfile \ No newline at end of file + path: bwa/0.7.18/22.03-lts-sp3/Dcokerfile \ No newline at end of file diff --git a/cann/meta.yml b/cann/meta.yml index 43451cba..afa77831 100644 --- a/cann/meta.yml +++ b/cann/meta.yml @@ -1,4 +1,2 @@ -# key为镜像的tag,value为构建对应tag镜像的Dockerfile保存路径 - cann7.0.RC1.alpha002-oe2203sp2: - - cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile + path: cann/7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile diff --git a/dlrm/meta.yml b/dlrm/meta.yml index 07db3669..1636977c 100644 --- a/dlrm/meta.yml +++ b/dlrm/meta.yml @@ -1,2 +1,2 @@ 1.0-oe2203sp3: - dlrm/1.0/22.03-lts-sp3/Dockerfile + path: dlrm/1.0/22.03-lts-sp3/Dockerfile diff --git a/dotnet-aspnet/meta.yml b/dotnet-aspnet/meta.yml index 5c4db1ef..5ca0b8ce 100644 --- a/dotnet-aspnet/meta.yml +++ b/dotnet-aspnet/meta.yml @@ -1,2 +1,2 @@ 8.0.3-oe2203sp3: - dotnet-aspnet/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-aspnet/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/dotnet-deps/meta.yml b/dotnet-deps/meta.yml index 24c7a255..1fc730ae 100644 --- a/dotnet-deps/meta.yml +++ b/dotnet-deps/meta.yml @@ -1,2 +1,2 @@ 8.0-oe2203sp3: - - dotnet-deps/8.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-deps/8.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/dotnet-runtime/meta.yml b/dotnet-runtime/meta.yml index 50c82d63..cbac1ae7 100644 --- a/dotnet-runtime/meta.yml +++ b/dotnet-runtime/meta.yml @@ -1,2 +1,2 @@ 8.0.3-oe2203sp3: - - dotnet-runtime/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: dotnet-runtime/8.0.3/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/go/1.22.5/22.03-lts-sp4/Dockerfile b/go/1.22.5/22.03-lts-sp4/Dockerfile index e5d29b20..90b033e1 100644 --- a/go/1.22.5/22.03-lts-sp4/Dockerfile +++ b/go/1.22.5/22.03-lts-sp4/Dockerfile @@ -10,14 +10,16 @@ ENV GOLANG_VERSION=1.22.5 ENV GO_ROOT=${LOCAL_PATH}/go ENV PATH=$GOPATH/bin:$GO_ROOT/bin:$PATH -RUN yum update && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ +RUN set -eux; \ + yum update -y && yum -y install g++ gcc glibc-devel make pkg-config findutils && yum clean all; \ curl -fSL -o ${LOCAL_PATH}/go.tar.gz https://dl.google.com/go/go${GOLANG_VERSION}.linux-${TARGETARCH}.tar.gz; \ tar -xvf ${LOCAL_PATH}/go.tar.gz -C ${LOCAL_PATH}; \ rm -f ${LOCAL_PATH}/go.tar.gz -RUN find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}"; \ +RUN set -eux; \ + find ${GO_ROOT}/src -exec touch -r ${GO_ROOT}/VERSION "{}" \; && \ touch ${GO_ROOT}/pkg; \ - find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}"; \ + find ${GO_ROOT}/pkg -exec touch -r ${GO_ROOT}/pkg "{}" \; && \ mkdir -p ${GO_ROOT}/bin/linux_${TARGETARCH}; \ ln -sf ${GO_ROOT}/bin/go ${GO_ROOT}/bin/linux_${TARGETARCH}/go; \ ln -sf ${GO_ROOT}/bin/gofmt ${GO_ROOT}/bin/linux_${TARGETARCH}/gofmt diff --git a/go/README.md b/go/README.md index c2edda4d..86411330 100644 --- a/go/README.md +++ b/go/README.md @@ -1,7 +1,9 @@ # Quick reference +- The official Go docker image. - The official Go docker image. +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). - Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). - Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). @@ -32,7 +34,7 @@ Note: `/go` is world-writable to allow flexibility in the user which runs the co ``` # Dockerfile - FROM openeuler/go:{Tag} + FROM openeuler/go:1.22.5-oe2203sp4 WORKDIR /usr/src/app COPY go.mod go.sum ./ @@ -52,27 +54,31 @@ Note: `/go` is world-writable to allow flexibility in the user which runs the co There may be occasions where it is not appropriate to run your app inside a container. To compile, but not run your app inside the Docker instance, you can write something like: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 go build -v ``` This will add your current directory as a volume to the container, set the working directory to the volume, and run the command go build which will tell go to compile the project in the working directory and output the executable to myapp. Alternatively, if you have a Makefile, you can run the make command inside your container. ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 make + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 make ``` - Cross-compile your app inside the Docker container If you need to compile your application for a platform other than linux/amd64 (such as windows/386): ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 openeuler/go:1.22.5-oe2203sp4 go build -v ``` Alternatively, you can build for multiple platforms at once: ```bash - $ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 bash - $ for GOOS in darwin linux; do - > for GOARCH in 386 amd64; do - > export GOOS GOARCH - > go build -v -o myapp-$GOOS-$GOARCH - > done - > done + + # First, start a Go instance + docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 bash + + # Second, build for multiple platforms + for GOOS in darwin linux; do + for GOARCH in 386 amd64; do + export GOOS GOARCH + go build -v -o myapp-$GOOS-$GOARCH + done + done ``` - View container running logs diff --git a/go/doc/image-info.yml b/go/doc/image-info.yml index 64203ec3..d056ece6 100644 --- a/go/doc/image-info.yml +++ b/go/doc/image-info.yml @@ -7,7 +7,7 @@ environment: | yum install -y docker ``` tags: | - BiSheng JDK镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + Go镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 | Tag | Currently | Architectures | |----------|-------------|------------------| @@ -28,7 +28,7 @@ usage: | 使用`openeuler/go`容器作为构建和运行时环境,可按照以下内容编译并运行项目 ``` # Dockerfile - FROM golang:1.22 + FROM openeuler/go:1.22.5-oe2203sp4 WORKDIR /usr/src/app COPY go.mod go.sum ./ @@ -48,28 +48,31 @@ usage: | 在某些情况下,在容器内运行应用程序可能并不合适。要编译但不在Docker实例内运行应用程序,可采用如下方式: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 go build -v ``` 这会将当前目录作为卷添加到容器中,将工作目录设置为该卷,然后运行执行`go build`编译项目中的代码,输出为可执行文件myapp。如果项目中包含Makefile编译文件,可以在容器内通过make命令编译: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 make + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 make ``` - 交叉编译 如果需要为除去linux/amd64之外的其他平台编译应用(例如:windows/386), 可采用如下方式: ``` - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 golang:1.22 go build -v + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -e GOOS=windows -e GOARCH=386 openeuler/go:1.22.5-oe2203sp4 go build -v ``` 或者,多平台同时构建如下: ``` - $ docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.22 bash - $ for GOOS in darwin linux; do - > for GOARCH in 386 amd64; do - > export GOOS GOARCH - > go build -v -o myapp-$GOOS-$GOARCH - > done - > done + # 第一步, 运行Go容器 + docker run --rm -it -v "$PWD":/usr/src/myapp -w /usr/src/myapp openeuler/go:1.22.5-oe2203sp4 bash + + # 第二步,多平台构建应用 + for GOOS in darwin linux; do + for GOARCH in 386 amd64; do + export GOOS GOARCH + go build -v -o myapp-$GOOS-$GOARCH + done + done ``` - 容器测试 diff --git a/grafana-agent/meta.yml b/grafana-agent/meta.yml index 64713ecd..7b2ac1ed 100644 --- a/grafana-agent/meta.yml +++ b/grafana-agent/meta.yml @@ -1,2 +1,2 @@ 0.40.2-oe2203sp3: - - grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/grafana/meta.yml b/grafana/meta.yml index e38c3011..f8e40292 100644 --- a/grafana/meta.yml +++ b/grafana/meta.yml @@ -1,4 +1,4 @@ 7.5.11-oe2203lts: - grafana/7.5.11/22.03-lts/Dockerfile + path: grafana/7.5.11/22.03-lts/Dockerfile 10.4.1-oe2203sp3: - grafana/10.4.1/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: grafana/10.4.1/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/httpd/meta.yml b/httpd/meta.yml index a99328e8..5b77d050 100644 --- a/httpd/meta.yml +++ b/httpd/meta.yml @@ -1,4 +1,4 @@ 2.4.51-oe2203lts: - - 2.4.51/22.03-lts/Dockerfile + path: 2.4.51/22.03-lts/Dockerfile 2.4.58-oe2203sp3: - - 2.4.58/22.03-lts-sp3/Dockerfile + path: 2.4.58/22.03-lts-sp3/Dockerfile diff --git a/kafka/meta.yml b/kafka/meta.yml index 4292c36e..66a6abd8 100644 --- a/kafka/meta.yml +++ b/kafka/meta.yml @@ -1,2 +1,2 @@ 3.7.0-oe2203sp3: - - kafka/3.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: kafka/3.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/llm-server/meta.yml b/llm-server/meta.yml index a7c6d880..5d5a000b 100644 --- a/llm-server/meta.yml +++ b/llm-server/meta.yml @@ -1,4 +1,4 @@ 1.0.0.gpu-oe2203sp3: - llm-server/1.0.0.gpu/22.03-lts-sp3/Dockerfile + path: llm-server/1.0.0.gpu/22.03-lts-sp3/Dockerfile 1.0.0.cpu-oe2203sp3: - llm-server/1.0.0.cpu/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: llm-server/1.0.0.cpu/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/llm/meta.yml b/llm/meta.yml index 7cef3906..5182006b 100644 --- a/llm/meta.yml +++ b/llm/meta.yml @@ -1,7 +1,4 @@ -# key为镜像的tag,value为构建对应tag镜像的Dockerfile保存路径 - fastchat-pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: - - llm/fastchat/22.03-lts-sp2/Dockerfile - + path: llm/fastchat-pytorch2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile chatglm2_6b-pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: - - llm/chatglm2_6b/22.03-lts-sp2/Dockerfile \ No newline at end of file + path: llm/chatglm2_6b-pytorch2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile \ No newline at end of file diff --git a/loki/meta.yml b/loki/meta.yml index cc7160e0..7482ed00 100644 --- a/loki/meta.yml +++ b/loki/meta.yml @@ -1,2 +1,2 @@ 2.9.5-oe2203sp3: - - loki/2.9.5/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: loki/2.9.5/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/memcached/meta.yml b/memcached/meta.yml index 18a3719d..b6c1b702 100644 --- a/memcached/meta.yml +++ b/memcached/meta.yml @@ -1,4 +1,4 @@ 1.6.12-oe2203lts: - memcached/1.6.12/22.03-lts/Dockerfile + path: memcached/1.6.12/22.03-lts/Dockerfile 1.6.24-oe2203sp3: - memcached/1.6.24/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: memcached/1.6.24/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/mimir/meta.yml b/mimir/meta.yml index 85284fdd..6695ee8d 100644 --- a/mimir/meta.yml +++ b/mimir/meta.yml @@ -1,2 +1,2 @@ 2.11.0-oe2203sp3: - - mimir/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: mimir/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/mlflow/meta.yml b/mlflow/meta.yml index c7ee2f0b..16924cfa 100644 --- a/mlflow/meta.yml +++ b/mlflow/meta.yml @@ -1,5 +1,4 @@ 2.11.1-oe2203sp3: - mlflow/2.11.1/22.03-lts-sp3/Dockerfile - + path: mlflow/2.11.1/22.03-lts-sp3/Dockerfile 2.13.1-oe2203sp3: - mlflow/2.13.1/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: mlflow/2.13.1/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/mysql/meta.yml b/mysql/meta.yml index 6d231d7c..3f9f90bf 100644 --- a/mysql/meta.yml +++ b/mysql/meta.yml @@ -1,2 +1,2 @@ 8.3.0-oe2203sp3: - mysql/8.3.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: mysql/8.3.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/nginx/1.25.4/22.03-lts-sp3/Dockerfile b/nginx/1.25.4/22.03-lts-sp3/Dockerfile index 075d6794..c28c5459 100644 --- a/nginx/1.25.4/22.03-lts-sp3/Dockerfile +++ b/nginx/1.25.4/22.03-lts-sp3/Dockerfile @@ -4,36 +4,17 @@ FROM ${BASE} ARG TARGETARCH ARG VERSION=1.25.4 -RUN yum -y install gcc openssl-devel make libxml2-devel libxslt-devel gd-devel perl\ - GeoIP-devel gperftools-devel && \ - yum clean all && \ - curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ +RUN yum -y install gcc openssl-devel make && \ + yum clean all + +RUN curl -o /tmp/nginx.tar.gz https://nginx.org/download/nginx-${VERSION}.tar.gz && \ tar -zxvf /tmp/nginx.tar.gz -C /tmp && \ cd /tmp/nginx-${VERSION} && \ - mkdir -p /var/tmp/nginx/ && \ ./configure \ - --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx \ - --modules-path=/usr/local/nginx/modules --conf-path=/etc/nginx/nginx.conf \ - --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log \ - --http-client-body-temp-path=/var/tmp/nginx/client \ - --http-fastcgi-temp-path=/var/tmp/nginx/fcgi \ - --http-proxy-temp-path=/var/tmp/nginx/proxy \ - --http-scgi-temp-path=/var/tmp/nginx/scgi \ - --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ - --pid-path=/var/run/nginx.pid \ - --lock-path=/var/run/nginx.lock \ - --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module \ - --with-http_realip_module --with-http_addition_module \ - --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic \ - --with-http_geoip_module=dynamic --with-http_sub_module \ - --with-http_dav_module --with-http_flv_module --with-http_mp4_module \ - --with-http_gunzip_module --with-http_gzip_static_module \ - --with-http_random_index_module --with-http_secure_link_module \ - --with-http_degradation_module --with-http_slice_module \ - --with-http_perl_module=dynamic --with-http_auth_request_module \ - --with-mail=dynamic --with-mail_ssl_module --with-openssl-opt=yes \ - --with-pcre --with-pcre-jit --with-stream=dynamic \ - --with-stream_ssl_module --with-google_perftools_module --with-debug && \ + --sbin-path=/usr/local/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --pid-path=/usr/local/nginx/nginx.pid \ + --with-http_ssl_module && \ make && make install && \ rm -rf /tmp/nginx.tar.gz /tmp/nginx-${VERSION} diff --git a/nginx/meta.yml b/nginx/meta.yml index 31899c1d..fc135e09 100644 --- a/nginx/meta.yml +++ b/nginx/meta.yml @@ -1,8 +1,6 @@ 1.16.1-oe2003sp1: - nginx/1.16.1/20.03-lts-sp1/Dockerfile - + path: nginx/1.16.1/20.03-lts-sp1/Dockerfile 1.21.5-oe2203lts: - nginx/1.21.5/22.03-lts/Dockerfile - + path: nginx/1.21.5/22.03-lts/Dockerfile 1.25.4-oe2203sp3: - nginx/1.25.4/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: nginx/1.25.4/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/oneapi-basekit/meta.yml b/oneapi-basekit/meta.yml index 4864270a..84feba9a 100644 --- a/oneapi-basekit/meta.yml +++ b/oneapi-basekit/meta.yml @@ -1,4 +1,3 @@ -# key is the image tag, value is the Dockerfile path for creating the image with corresponding tag - 2024.2.0-oe2403lts: - - oneapi-basekit/2024.2.0/24.03-lts/Dockerfile + path: oneapi-basekit/2024.2.0/24.03-lts/Dockerfile + arch: x86_64 diff --git a/oneapi-runtime/meta.yml b/oneapi-runtime/meta.yml index 6f47f372..9203d156 100644 --- a/oneapi-runtime/meta.yml +++ b/oneapi-runtime/meta.yml @@ -1,4 +1,3 @@ -# key is the image tag, value is the Dockerfile path for creating the image with corresponding tag - 2024.2.0-oe2403lts: - - oneapi-runtime/2024.2.0/24.03-lts/Dockerfile + path: oneapi-runtime/2024.2.0/24.03-lts/Dockerfile + arch: x86_64 diff --git a/openjdk/meta.yml b/openjdk/meta.yml index 3828a1b3..a114052e 100644 --- a/openjdk/meta.yml +++ b/openjdk/meta.yml @@ -1,3 +1,3 @@ # "23+13" is invalid as a tag 23_13-oe2203sp3: - openjdk/23+13/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: openjdk/23+13/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/postgres/meta.yml b/postgres/meta.yml index 6b6b831e..53d35e70 100644 --- a/postgres/meta.yml +++ b/postgres/meta.yml @@ -1,4 +1,4 @@ 13.3-oe2203lts: - postgres/13.3/22.03-lts/Dockerfile + path: postgres/13.3/22.03-lts/Dockerfile 16.2-oe2203sp3: - postgres/16.2/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: postgres/16.2/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/prometheus-pushgateway/meta.yml b/prometheus-pushgateway/meta.yml index b87c5861..4ec8ec57 100644 --- a/prometheus-pushgateway/meta.yml +++ b/prometheus-pushgateway/meta.yml @@ -1,2 +1,2 @@ 1.7.0-oe2203sp3: - prometheus-pushgateway/1.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: prometheus-pushgateway/1.7.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/prometheus/meta.yml b/prometheus/meta.yml index 77acd0d9..7b9c2376 100644 --- a/prometheus/meta.yml +++ b/prometheus/meta.yml @@ -1,4 +1,4 @@ 2.50.1-oe2203sp3: - - prometheus/2.50.1/22.03-lts-sp3/Dockerfile + path: prometheus/2.50.1/22.03-lts-sp3/Dockerfile 2.20.0-oe2203lts: - - prometheus/2.20.0/22.03-lts/Dockerfile \ No newline at end of file + path: prometheus/2.20.0/22.03-lts/Dockerfile \ No newline at end of file diff --git a/pytorch/meta.yml b/pytorch/meta.yml index 655047ef..c3ea7b24 100644 --- a/pytorch/meta.yml +++ b/pytorch/meta.yml @@ -1,2 +1,2 @@ pytorch2.1.0.a1-cann7.0.RC1.alpha002-oe2203sp2: - pytorch/2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile + path: pytorch/2.1.0.a1-cann7.0.RC1.alpha002/22.03-lts-sp2/Dockerfile diff --git a/redis/meta.yml b/redis/meta.yml index 8c0ea626..be40f035 100644 --- a/redis/meta.yml +++ b/redis/meta.yml @@ -1,4 +1,4 @@ 6.2.7-oe2203lts: - redis/6.2.7/22.03-lts/Dockerfile + path: redis/6.2.7/22.03-lts/Dockerfile 7.2.4-oe2203sp3: - redis/7.2.4/22.03-lts-sp3/Dcokerfile \ No newline at end of file + path: redis/7.2.4/22.03-lts-sp3/Dcokerfile \ No newline at end of file diff --git a/spark/meta.yml b/spark/meta.yml index b4a950c8..7c93ed9c 100644 --- a/spark/meta.yml +++ b/spark/meta.yml @@ -1,11 +1,8 @@ 3.3.1-oe2203lts: - spark/3.3.1/22.03-lts/Dockerfile - + path: spark/3.3.1/22.03-lts/Dockerfile 3.3.2-oe2203lts: - spark/3.3.2/22.03-lts/Dockerfile - + path: spark/3.3.2/22.03-lts/Dockerfile 3.4.0-oe2203lts: - spark/3.4.0/22.03-lts/Dockerfile - + path: spark/3.4.0/22.03-lts/Dockerfile 3.5.1-oe2403lts: - spark/3.5.1/24.03-lts/Dockerfile \ No newline at end of file + path: spark/3.5.1/24.03-lts/Dockerfile \ No newline at end of file diff --git a/squid/meta.yml b/squid/meta.yml index f97598a5..bc5afa36 100644 --- a/squid/meta.yml +++ b/squid/meta.yml @@ -1,2 +1,2 @@ 6.8-oe2203sp3: - - squid/6.8/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: squid/6.8/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/telegraf/meta.yml b/telegraf/meta.yml index a16720f3..4ff2d5e0 100644 --- a/telegraf/meta.yml +++ b/telegraf/meta.yml @@ -1,2 +1,2 @@ 1.29.5-oe2203sp3: - telegraf/1.29.5/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: telegraf/1.29.5/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/traefik/meta.yml b/traefik/meta.yml index f306dbd3..b0b22366 100644 --- a/traefik/meta.yml +++ b/traefik/meta.yml @@ -1,2 +1,2 @@ 2.11.0-oe2203sp3: - - traefik/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: traefik/2.11.0/22.03-lts-sp3/Dockerfile \ No newline at end of file diff --git a/zookeeper/meta.yml b/zookeeper/meta.yml index 2fb41d2b..1dc73866 100644 --- a/zookeeper/meta.yml +++ b/zookeeper/meta.yml @@ -1,2 +1,2 @@ 3.8.3-oe2203sp3: - zookeeper/3.8.3/22.03-lts-sp3/Dockerfile \ No newline at end of file + path: zookeeper/3.8.3/22.03-lts-sp3/Dockerfile \ No newline at end of file -- Gitee