Docker镜像支持 arm64架构吗?需要部署在盒子上
wnpllrzodiac opened this issue · 11 comments
支持,直接拉取latest镜像就可以
@simon-ding 可以支持armv7吗?升级一下DockerFile?
@simon-ding 可以支持armv7吗?升级一下DockerFile?
我对这块不太熟,能提供个文档说明吗?或者直接提个pull request也行
以下是kimi的回复,主要是flutter的镜像也要支持armv7,看是否可以不用fluter或其他办法。如果可以的话,就可以部署在玩客云机器或旧安卓盒子。
要将 Dockerfile 修改以支持 armv7 架构,你需要做几个调整:
-
基础镜像:你需要使用支持 armv7 的基础镜像。对于 Flutter 和 Go,你可以使用
arm32v7
标签的镜像。 -
Go 编译:在编译 Go 应用程序时,你需要指定目标平台为 armv7。
-
多阶段构建:你的 Dockerfile 已经使用了多阶段构建,这是一个很好的实践,可以保持不变。
以下是修改后的 Dockerfile:
# 打包 Flutter 应用阶段,使用支持 armv7 的 Flutter 镜像
FROM instrumentisto/flutter:3-arm32v7 AS flutter
WORKDIR /app
COPY ./ui/pubspec.yaml ./ui/pubspec.lock ./
RUN flutter pub get
COPY ./ui/ ./
RUN flutter build web --no-web-resources-cdn --web-renderer html
# 打包依赖阶段使用支持 armv7 的 golang 作为基础镜像
FROM golang:1.23-arm32v7 as builder
# 启用go module
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
COPY --from=flutter /app/build/web ./ui/build/web/
# 指定OS等,并go build,指定目标平台为 armv7
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -o polaris -ldflags="-X polaris/db.Version=$(git describe --tags --long)" ./cmd/
# 使用支持 armv7 的 Debian 镜像
FROM debian:stable-slim-arm32v7
WORKDIR /app
RUN apt-get update && apt-get -y install ca-certificates tzdata gosu tini locales && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo "${TZ}" > /etc/timezone && apt-get clean && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
ENV TZ="Asia/Shanghai" GIN_MODE=release PUID=0 PGID=0 UMASK=0
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 将上一个阶段publish文件夹下的所有文件复制进来
COPY --from=builder /app/polaris .
COPY --from=builder /app/entrypoint.sh .
RUN chmod +x /app/entrypoint.sh
VOLUME /app/data
EXPOSE 8080
ENTRYPOINT ["tini","./entrypoint.sh"]
请注意以下几点:
FROM golang:1.23-arm32v7
和FROM debian:stable-slim-arm32v7
指定了 armv7 的基础镜像。GOOS=linux GOARCH=arm GOARM=7
在编译 Go 应用程序时指定了目标平台为 armv7。- 确保你的 Flutter 镜像
instrumentisto/flutter:3-arm32v7
存在,如果不存在,你可能需要自己构建或者找到一个合适的替代镜像。
如果你在构建过程中遇到任何问题,可能需要检查 Docker Hub 上是否有可用的 armv7 镜像,或者你可能需要自己构建这些镜像。
已增加,最新release已经有arm v7了
赞赞赞 o( ̄▽ ̄)d
已增加,最新release已经有arm v7了
赞赞赞 o( ̄▽ ̄)d
已增加,最新release已经有arm v7了
https://github.com/simon-ding/polaris/releases/tag/v0.19.0
能问一下 你这个arm v7的是什么设备吗?
赞赞赞 o( ̄▽ ̄)d
已增加,最新release已经有arm v7了
https://github.com/simon-ding/polaris/releases/tag/v0.19.0能问一下 你这个arm v7的是什么设备吗?
闲鱼搜索“玩客云”,22块包邮,可以刷armbian和安装Casaos,再挂两个硬盘,爽歪歪~~
赞赞赞 o( ̄▽ ̄)d
已增加,最新release已经有arm v7了
https://github.com/simon-ding/polaris/releases/tag/v0.19.0能问一下 你这个arm v7的是什么设备吗?
闲鱼搜索“玩客云”,22块包邮,可以刷armbian和安装Casaos,再挂两个硬盘,爽歪歪~~
哦哦 玩客云啊
你试一下最新的镜像可不可以用
刚才已经确认过可以运行起来,后续使用有问题的话我再反馈。就是加载 fonts/NotoSansSC-Regular.ttf这个字体有10M,等待时白屏比较久,可以看看优化懒加载或裁剪下字体文件。
刚才已经确认过可以运行起来,后续使用有问题的话我再反馈。就是加载 fonts/NotoSansSC-Regular.ttf这个字体有10M,等待时白屏比较久,可以看看优化懒加载或裁剪下字体文件。
这是flutter的问题😂 一定要加载中文字体,不放在服务器上的话还要谷歌服务器翻墙来加载😂