tensorflow / tensorflow/serving

tensorflow-serving docker container doesn't work on Macs with Apple M1 chips.

Open
#1,948 20 comments 44 reactions 1 assignee View on GitHub

@jeelania10 is already working on this.

Since Aug 12, 2026.

stat:awaiting tensorflower type:build/install
Dominant language
C++
Stars
6.4k
Forks
2.2k
PR merge metrics
No merged PRs in 30d

Description

Bug Report

tensorflow-serving docker container doesn't work on Macs with Apple M1 chips.

Do maintainers of tensorflow-serving intend to solve this?
Or do they see this as a problem somewhere upstream (docker for mac? OSX?) that should be fixed there? If so, does someone have a clear understanding as to where in the stack lies the issue?

My team is using tensorflow-serving on linux in production, but many members develop on OSX, so having a running docker container version of tensorflow serving in development is crucial to us.

Now that no new Macbook laptops with Intel CPUs are offered, I imagine a lot of other development teams that use tensorflow-serving are in similar situation, or will be as soon as they will start to replace their computers, so I think this bug will grow to be a serious problem for tensorflow-serving adoption and continuous use.

System information
  • OS Platform and Distribution: macOS Monterey (12.0.1)
  • TensorFlow Serving installed from (source or binary): from docker hub
  • TensorFlow Serving version: tensorflow/serving:2.6.2
  • Chip: Apple M1
  • Docker for desktop: 4.3.0
  • Docker engine: v20.10.11
Describe the problem

tensorflow-serving docker container doesn't work on Macs with Apple M1 chips.
Container crashes when run.

Exact Steps to Reproduce

Run official script on Apple with M1 chip.
In script below we are using tensorflow/serving:2.6.2 instead of tensorflow/serving, so it's easier to do version control (at the time of this writing container with latest tag gives the same output though)

git clone https://github.com/tensorflow/serving

# Location of demo models
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"

docker run -t --rm -p 8501:8501 --platform linux/amd64 -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" -e MODEL_NAME=half_plus_two tensorflow/serving:2.6.2 &

Last line results in:

[1] 1032
[libprotobuf FATAL external/com_google_protobuf/src/google/protobuf/generated_message_reflection.cc:2345] CHECK failed: file != nullptr:                                                        [~/workspace]
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  CHECK failed: file != nullptr:
qemu: uncaught target signal 6 (Aborted) - core dumped
/usr/bin/tf_serving_entrypoint.sh: line 3:     9 Aborted                 tensorflow_model_server --port=8500 --rest_api_port=8501 --model_name=${MODEL_NAME} --model_base_path=${MODEL_BASE_PATH}/${MODEL_NAME} "$@"

[1]  + exit 134   docker run -t --rm -p 8501:8501 --platform linux/amd64 -v  -e

Same happens when running docker container with --platform linux/amd64 option.

On a sidenote - I found a few related issues here and there, but none of them address tensorflow serving x docker container x m1 chip problem directly, hence I posted a new issue.
Here are some of them, including notes on why are they relevant:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.