# Molecule with Docker on Mac M2 causes Com.apple.Virtualization.VirtualMachine crashed when gather\_facts is enabled

**URL:** <https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902>\
**Category:** Get Help\
**Tags:** macosx, docker, molecule, galaxy-ng\
**Created:** [December 14, 2023, 10:49am UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902 "2023-12-14T10:49:34Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![iamroddo](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/iamroddo/32/321_2.png) [@iamroddo](https://forum.ansible.com/u/iamroddo)\
**Post date:** [December 14, 2023, 10:49am UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/1 "2023-12-14T10:49:34Z")

</div>

I’m running a Molecule test against a container running in Docker Desktop locally. When I set `gather_facts` to true in `converge.yml` Docker crashes hard with the error `Com.apple.Virtualization.VirtualMachine crashed` covering the screen, with no option to click it away, restart is the only recovery.

My `molecule.yml` file is below.

```YAML
---
dependency:
  name: galaxy
driver:
  name: docker
platforms:
  - name: instance
    image: registry.access.redhat.com/ubi8/ubi-init
    command: ""
    privileged: true
    pre_build_image: true
    platform: amd64
provisioner:
  name: ansible
verifier:
  name: ansible

```

- I have Docker Desktop version 4.25.2 and the following package versions
  - molecule==6.0.2
  - molecule-plugins==23.5.0
  - ansible-core==2.15.7
  - docker==6.1.3

---

<div class="post-metadata">

**Author:** ![chris](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris/32/293_2.png) [@chris](https://forum.ansible.com/u/chris)\
**Post date:** [December 14, 2023, 1:50pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/2 "2023-12-14T13:50:20Z")

</div>

I don’t run Docker locally and I also don’t use OSX so this suggestion might not be of any use… but what happens if you set `privileged: false`?

Incidently [molecule 6.0.3](https://github.com/ansible/molecule/releases/tag/v6.0.3) was released yesterday.

---

<div class="post-metadata">

**Author:** ![iamroddo](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/iamroddo/32/321_2.png) [@iamroddo](https://forum.ansible.com/u/iamroddo)\
**Post date:** [December 14, 2023, 9:15pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/3 "2023-12-14T21:15:35Z")

</div>

Using molecule 6.0.3 and also docker 7.0.0 libraries didn’t help. I’m suspecting this might have something that the ubi7 image is amd64 and to make it work I set the platform to amd64. My Mac has an arm64 M2 chip so some sort of emulation has to happen. I wonder if this is failing badly.

---

<div class="post-metadata">

**Author:** ![iamroddo](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/iamroddo/32/321_2.png) [@iamroddo](https://forum.ansible.com/u/iamroddo)\
**Post date:** [December 15, 2023, 3:29pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/4 "2023-12-15T15:29:38Z")

</div>

I found some consistency. The crash happens when the image used by Molecule is UBI which is only AMD64 ie no ARM64 image. I needed to set `privileged: true` in order to get systemd to work. When I set `privileged: false` the crash doesn’t happen, but my use case can’t be tested. I found that if I use colima ([GitHub - abiosoft/colima: Container runtimes on macOS (and Linux) with minimal setup](https://github.com/abiosoft/colima)) instead of Docker Desktop, this issue goes away.

---

<div class="post-metadata">

**Author:** ![chris](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris/32/293_2.png) [@chris](https://forum.ansible.com/u/chris)\
**Post date:** [December 15, 2023, 3:45pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/5 "2023-12-15T15:45:08Z")

</div>

> [@iamroddo](#):
>
> I needed to set `privileged: true` in order to get systemd to work.

Indeed, I discovered that as well when working out [how to run Molecule in Docker containers via GitLab CI](https://forum.gitlab.com/t/docker-executor-with-systemd/91393/3?u=chrisc).

---

<div class="post-metadata">

**Author:** ![iamroddo](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/iamroddo/32/321_2.png) [@iamroddo](https://forum.ansible.com/u/iamroddo)\
**Post date:** [December 15, 2023, 4:45pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/6 "2023-12-15T16:45:38Z")

</div>

@chris Did you come across a way of making systemd function in a container without enabling `privileged`? I wouldn’t mind switching that off.

---

<div class="post-metadata">

**Author:** ![felixfontein](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/felixfontein/32/7530_2.png) [@felixfontein](https://forum.ansible.com/u/felixfontein)\
**Post date:** [December 15, 2023, 4:57pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/7 "2023-12-15T16:57:56Z")

</div>

Just as a note in case someone reading this isn’t aware of it: `privileged: true` is similar to running something with `sudo` - you basically give the container full access to the machine, and code running in it can escape from the container. So only use it if you’re really sure it’s OK and safe.

---

<div class="post-metadata">

**Author:** ![chris](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris/32/293_2.png) [@chris](https://forum.ansible.com/u/chris)\
**Post date:** [December 15, 2023, 5:07pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/8 "2023-12-15T17:07:03Z")

</div>

I found [this RedHat article from 2016](https://developers.redhat.com/blog/2016/09/13/running-systemd-in-a-non-privileged-container) but I haven’t tried it…

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [January 14, 2024, 5:07pm UTC](https://forum.ansible.com/t/molecule-with-docker-on-mac-m2-causes-com-apple-virtualization-virtualmachine-crashed-when-gather-facts-is-enabled/2902/9 "2024-01-14T17:07:48Z")

</div>

Closed on January 14, 2024, 5:07pm UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
