docker - Dockerfile是否与Raspberry Pi兼容?

标签 docker kubernetes raspberry-pi

我已经从Rpi Kubernetes集群中的以下Dockerfile中构建了镜像。但是,我的Pod的状态为CrashLoopBackOff

在互联网上进行了一些搜索之后,我意识到问题可能出在Dockerfile与RPi的兼容性。
运行docker logs CONTAINER_ID时出现以下错误
standard_init_linux.go:190: exec user process caused "exec format error"
Dockerfile:

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y \
    git \
    software-properties-common \ 
    python3-pip git
RUN add-apt-repository universe \
    && apt-get update
RUN pip3 install tornado sqlalchemy construct==2.5.5-reupload
RUN git clone https://github.com/majadoon/empower-runtime.git
RUN cd empower-runtime \
    && mkdir deploy

EXPOSE 8000 4433

WORKDIR /empower-runtime

CMD ["./empower-runtime.py"]

此外,如果我在Pi上构建相同的镜像,则会在Rpi上收到以下错误:
Sending build context to Docker daemon  210.9kB
Step 1/9 : FROM ubuntu:18.04
 ---> e37fc27e0a1c
Step 2/9 : RUN apt-get update && apt-get install -y     git     software-properties-common     python3-pip git
 ---> Running in 842028d7fb7c
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease [242 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease [88.7 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease [74.6 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease [88.7 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports bionic/main armhf Packages [1277 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports bionic/restricted armhf Packages [12.5 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports bionic/multiverse armhf Packages [157 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports bionic/universe armhf Packages [11.0 MB]
Err:8 http://ports.ubuntu.com/ubuntu-ports bionic/universe armhf Packages
  Hash Sum mismatch
  Hashes of expected file:
   - Filesize:10952440 [weak]
   - SHA256:2a96d24bf4bc145b70c6a8277d260612b8ec0d7809a9a430d7b94979f2b72e7d
   - SHA1:e80857f8c522f917dc7c8bb5d349fc1c23d4b0cb [weak]
   - MD5Sum:ea51b85377313c571246771e62d9f42f [weak]
  Hashes of received file:
   - SHA256:7ca8bf6e1559853dc4f096bf9bb7b87981cc0a0b2368bee75464a922a0ee29de
   - SHA1:1b7ecd65892b1a91f32dc5b3d0e8a4d21be0d403 [weak]
   - MD5Sum:304d6607acc4fe62d964414c9a987fe4 [weak]
   - Filesize:10952440 [weak]
  Last modification reported: Thu, 26 Apr 2018 22:52:38 +0000
  Release file created at: Thu, 26 Apr 2018 23:37:48 +0000
Get:9 http://ports.ubuntu.com/ubuntu-ports bionic-updates/multiverse armhf Packages [3824 B]
Get:10 http://ports.ubuntu.com/ubuntu-ports bionic-updates/restricted armhf Packages [10.1 kB]
Get:11 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe armhf Packages [1038 kB]
Get:12 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main armhf Packages [661 kB]
Get:13 http://ports.ubuntu.com/ubuntu-ports bionic-backports/universe armhf Packages [3932 B]
Get:14 http://ports.ubuntu.com/ubuntu-ports bionic-backports/main armhf Packages [2490 B]
Get:15 http://ports.ubuntu.com/ubuntu-ports bionic-security/multiverse armhf Packages [1910 B]
Get:16 http://ports.ubuntu.com/ubuntu-ports bionic-security/main armhf Packages [380 kB]
Get:17 http://ports.ubuntu.com/ubuntu-ports bionic-security/restricted armhf Packages [5013 B]
Get:18 http://ports.ubuntu.com/ubuntu-ports bionic-security/universe armhf Packages [582 kB]
Fetched 15.6 MB in 36s (430 kB/s)
Reading package lists...
E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/bionic/universe/binary-armhf/by-hash/SHA256/2a96d24bf4bc145b70c6a8277d260612b8ec0d7809a9a430d7b94979f2b72e7d  Hash Sum mismatch
   Hashes of expected file:
    - Filesize:10952440 [weak]
    - SHA256:2a96d24bf4bc145b70c6a8277d260612b8ec0d7809a9a430d7b94979f2b72e7d
    - SHA1:e80857f8c522f917dc7c8bb5d349fc1c23d4b0cb [weak]
    - MD5Sum:ea51b85377313c571246771e62d9f42f [weak]
   Hashes of received file:
    - SHA256:7ca8bf6e1559853dc4f096bf9bb7b87981cc0a0b2368bee75464a922a0ee29de
    - SHA1:1b7ecd65892b1a91f32dc5b3d0e8a4d21be0d403 [weak]
    - MD5Sum:304d6607acc4fe62d964414c9a987fe4 [weak]
    - Filesize:10952440 [weak]
   Last modification reported: Thu, 26 Apr 2018 22:52:38 +0000
   Release file created at: Thu, 26 Apr 2018 23:37:48 +0000
E: Some index files failed to download. They have been ignored, or old ones used instead.
The command '/bin/sh -c apt-get update && apt-get install -y     git     software-properties-common     python3-pip git' returned a non-zero code: 100

编辑:问题似乎是在gitapt-get install git上,或者因为分别运行两个给我以下错误:
The following additional packages will be installed:
  ca-certificates cron dbus dirmngr distro-info-data file gir1.2-glib-2.0
  gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server
  gpgconf gpgsm iso-codes libapparmor1 libapt-inst2.0 libasn1-8-heimdal
  libassuan0 libdbus-1-3 libexpat1 libgirepository-1.0-1 libglib2.0-0
  libglib2.0-data libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal
  libheimntlm0-heimdal libhx509-5-heimdal libicu60 libkrb5-26-heimdal libksba8
  libldap-2.4-2 libldap-common libmagic-mgc libmagic1 libmpdec2 libnpth0
  libpython3-stdlib libpython3.6-minimal libpython3.6-stdlib libreadline7
  libroken18-heimdal libsasl2-2 libsasl2-modules libsasl2-modules-db
  libsqlite3-0 libssl1.1 libwind0-heimdal libxml2 lsb-release mime-support
  openssl pinentry-curses powermgmt-base python-apt-common python3 python3-apt
  python3-dbus python3-gi python3-minimal python3-software-properties
  python3.6 python3.6-minimal readline-common shared-mime-info ucf
  unattended-upgrades xdg-user-dirs xz-utils
Suggested packages:
  anacron logrotate checksecurity exim4 | postfix | mail-transport-agent
  default-dbus-session-bus | dbus-session-bus dbus-user-session libpam-systemd
  pinentry-gnome3 tor parcimonie xloadimage scdaemon isoquery
  libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
  libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql lsb
  pinentry-doc python3-doc python3-tk python3-venv python3-apt-dbg
  python-apt-doc python-dbus-doc python3-dbus-dbg python3.6-venv python3.6-doc
  binutils binfmt-support readline-doc bsd-mailx default-mta
  | mail-transport-agent needrestart
The following NEW packages will be installed:
  ca-certificates cron dbus dirmngr distro-info-data file gir1.2-glib-2.0
  gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server
  gpgconf gpgsm iso-codes libapparmor1 libapt-inst2.0 libasn1-8-heimdal
  libassuan0 libdbus-1-3 libexpat1 libgirepository-1.0-1 libglib2.0-0
  libglib2.0-data libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal
  libheimntlm0-heimdal libhx509-5-heimdal libicu60 libkrb5-26-heimdal libksba8
  libldap-2.4-2 libldap-common libmagic-mgc libmagic1 libmpdec2 libnpth0
  libpython3-stdlib libpython3.6-minimal libpython3.6-stdlib libreadline7
  libroken18-heimdal libsasl2-2 libsasl2-modules libsasl2-modules-db
  libsqlite3-0 libssl1.1 libwind0-heimdal libxml2 lsb-release mime-support
  openssl pinentry-curses powermgmt-base python-apt-common python3 python3-apt
  python3-dbus python3-gi python3-minimal python3-software-properties
  python3.6 python3.6-minimal readline-common shared-mime-info
  software-properties-common ucf unattended-upgrades xdg-user-dirs xz-utils
0 upgraded, 73 newly installed, 0 to remove and 7 not upgraded.
Need to get 23.0 MB of archives.
After this operation, 98.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] Abort.
The command '/bin/sh -c apt-get install software-properties-common' returned a non-zero code: 1

最佳答案

通过在Dockerfile中进行一些更改解决了该问题。我认为问题在于间距,我不得不将RUN用于某些命令,加上-y标签在某些地方有所帮助,原因是我不知道。想知道是否有人可以解释更多。

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y
RUN apt-get install git -y
RUN apt-get install software-properties-common -y

RUN add-apt-repository universe
RUN apt-get update
RUN apt-get install python3-pip git -y
RUN pip3 install tornado sqlalchemy construct==2.5.5-reupload
RUN apt-get install gnutls-bin -y
RUN git clone https://github.com/majadoon/empower-runtime.git
RUN cd empower-runtime && \
    mkdir deploy

EXPOSE 8888 4433

WORKDIR /empower-runtime

CMD ["./empower-runtime.py"]

关于docker - Dockerfile是否与Raspberry Pi兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56835378/

相关文章:

docker - 如何将文件映射到ipfs docker容器

docker - 如何使用 docker 正确设置 jenkins?

rest - 理解 Go 中 Kubernetes API 框架的逻辑

python - Python Speech_recognition无法检测到麦克风的音频

linux - 无法在docker上执行conky

go - docker run 上的 Docker Golang onbuild 自定义操作

Kubernetes CPU 多线程

amazon-web-services - 不使用EKS时,能否在AWS的Kubernetes集群上使用AWS VPC CNI

python - Raspberry Pi Python (Kivy) 使用 sudo 时速度极慢

java - 无法启动 Java ME 设备选择器