Przeglądaj źródła

Possible solution for multiarch container images

jamesread 4 lat temu
rodzic
commit
5b4f51f698
4 zmienionych plików z 55 dodań i 8 usunięć
  1. 5 5
      .goreleaser.yml
  2. 4 3
      Dockerfile
  3. 23 0
      Dockerfile.arm64
  4. 23 0
      Dockerfile.armv7

+ 5 - 5
.goreleaser.yml

@@ -75,7 +75,7 @@ dockers:
     goos: linux
     goarch: amd64
     skip_push: false
-    use: docker
+    
     build_flag_templates:
       - "--platform=linux/amd64"
       - "--label=org.opencontainers.image.title={{.ProjectName}}"
@@ -87,11 +87,11 @@ dockers:
 
   - image_templates:
       - "docker.io/jamesread/olivetin:{{ .Tag }}-arm64"
-    dockerfile: Dockerfile
+    dockerfile: Dockerfile.arm64
     goos: linux
     goarch: arm64
     skip_push: false
-    use: docker
+    
     build_flag_templates:
       - "--platform=linux/arm64"
       - "--label=org.opencontainers.image.title={{.ProjectName}}"
@@ -104,12 +104,12 @@ dockers:
     # support rpi 1's, but it seems most container images start with v7.
   - image_templates:
       - "docker.io/jamesread/olivetin:{{ .Tag }}-armv7"
-    dockerfile: Dockerfile
+    dockerfile: Dockerfile.armv7
     goos: linux
     goarm: 7
     goarch: arm
     skip_push: false
-    use: docker
+    
     build_flag_templates:
       - "--platform=linux/arm/v7"
       - "--label=org.opencontainers.image.title={{.ProjectName}}"

+ 4 - 3
Dockerfile

@@ -1,14 +1,15 @@
-FROM fedora
+FROM --platform=linux/amd64 docker.io/amd64/fedora
 
 RUN useradd -rm olivetin -u 1000 
 
-RUN mkdir -p /config /var/www/olivetin/ && \
+RUN mkdir -p /config /var/www/olivetin \
+    && \
     dnf install -y \ 
 		iputils \
 		openssh-clients \
 		docker \
     && dnf clean all && \
-    rm -rf /var/cache/yum # install ping
+    rm -rf /var/cache/yum 
 
 EXPOSE 1337/tcp 
 

+ 23 - 0
Dockerfile.arm64

@@ -0,0 +1,23 @@
+FROM --platform=linux/arm64 docker.io/arm64v8/fedora
+
+RUN useradd -rm olivetin -u 1000 
+
+RUN mkdir -p /config /var/www/olivetin \
+    && \
+    dnf install -y \ 
+		iputils \
+		openssh-clients \
+		docker \
+    && dnf clean all && \
+    rm -rf /var/cache/yum 
+
+EXPOSE 1337/tcp 
+
+VOLUME /config
+
+COPY OliveTin /usr/bin/OliveTin
+COPY webui /var/www/olivetin/
+
+USER olivetin
+
+ENTRYPOINT [ "/usr/bin/OliveTin" ]

+ 23 - 0
Dockerfile.armv7

@@ -0,0 +1,23 @@
+FROM --platform=linux/arm/v7 arm32v7/fedora:latest
+
+RUN useradd -rm olivetin -u 1000 
+
+RUN mkdir -p /config /var/www/olivetin \
+    && \
+    dnf install -y \ 
+		iputils \
+		openssh-clients \
+		docker \
+    && dnf clean all && \
+    rm -rf /var/cache/yum 
+
+EXPOSE 1337/tcp 
+
+VOLUME /config
+
+COPY OliveTin /usr/bin/OliveTin
+COPY webui /var/www/olivetin/
+
+USER olivetin
+
+ENTRYPOINT [ "/usr/bin/OliveTin" ]