Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Docker (For Mac) De-facto Host Address Alias (10.254.254.254) - "The 10254 Trick".

Docker (Mac) De-facto Standard Host Address Alias

This launchd script will ensure that your Docker environment on your Mac will have 10.254.254.254 as an alias on your loopback device (127.0.0.1). The command being run is ifconfig lo0 alias 10.254.254.254

Installation

Copy/Paste the following in terminal with sudo (must be root as the target directory is owned by root)...

sudo curl -o /Library/LaunchDaemons/com.ralphschindler.docker_10254_alias.plist https://gist.githubusercontent.com/ralphschindler/535dc5916ccbd06f53c1b0ee5a868c93/raw/com.ralphschindler.docker_10254_alias.plist

Or copy the above Plist file to /Library/LaunchDaemons/com.ralphschindler.docker_10254_alias.plist

Next and every successive reboot will ensure your lo0 will have the proper ip address.

Why?

Because docker.local is gone. This seems to be the easiest way to setup xdebug to connect back to your IDE running on your host. Similarly, this is a solution for any kind of situations where a container needs to connect back to the host container at a known ip address.

For example, a configuration for xdebug in your php container for xdebug.ini might look like:

zend_extension=xdebug.so
xdebug.remote_host=10.254.254.254
xdebug.remote_enable=1
xdebug.remote_autostart=1

Also, your nginx and docker-compose would include an environment variable much like PHP_IDE_CONFIG="serverName=localhost"

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.ralphschindler.docker_10254_alias</string>
<key>ProgramArguments</key>
<array>
<string>ifconfig</string>
<string>lo0</string>
<string>alias</string>
<string>10.254.254.254</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
@rallen-temp

Ran manually, confirmed working. TYSM.

@DrNgo
DrNgo commented Sep 22, 2016

Ran this as well, confirmed working. Thanks so much for this solution!

@nabiyllin

Thanks a lot for this solution!

@ababushkin
ababushkin commented Oct 15, 2016 edited

Can you please post your docker-compose configuration file for the PHP and nginx containers? I can't seem to get this to work still :(

Never mind, my container had the wrong configuration (reboot caused me to lose my local state).

Thanks this is working without issues 👍

@jkuma
jkuma commented Jan 7, 2017

Working like a charm ! Many thanks sir 👍

@lucasceballos

Worked! Thanks

@fjmiguel
fjmiguel commented Jan 27, 2017 edited

Thank you so much! Great solution!

@ihr-it-projekt

Thank you so much, IT WORKS.

@rakauchuk

It works, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment