Comments (10)
At this point, I don't think we'd rename that binary because of how people rely on it.
Good point. I hate updates that break my scripts, just as much as anybody else.
An alias is a good solution. It's what they are for. Currently I just add a symbolic link from tailscale to Tailscale, which works fine as well.
from docker-extension.
The update from Tailscale Docker-Extension 0.0.10 to 0.0.11 did not fix the issue.
Could the problem be related to the App Store version of the Tailscale client? The App Store client does not expose the tailscale
command, which adds it's very own complexity (like following instructions like this). Does the Docker-Extension rely on the executable?
from docker-extension.
The update from Tailscale Docker-Extension 0.0.11 to 0.0.12 did not fix the issue.
from docker-extension.
Hi! Sorry for the trouble, and thanks for reporting this. Our "is Tailscale installed" check is a little hacky, since it just checks a particular path. It looks like you're running macOS, which would run this code when checking.
Where is your local copy of Tailscale.app installed? Maybe there are ways we can make our check more robust.
from docker-extension.
Tailscale has been installed from the App Store and is in the default location of /Application/Tailscale.app
.
Copying the linked file locally and executing it with /bin/sh -x ./host-tailscale present
returns no error/0 (as expected).
Quitting Tailscale and executing the script with … start
will start Tailscale (as expected).
Executing … status
can't be tested here, since I wouldn't know how the script is called and what value $2
could/would/should have.
Since the script works fine, could it be something in the function calling the script?
from docker-extension.
Hmm, the core block which runs that script is found here.
Reviewing the code again, it looks like it's correctly finding that you have Tailscale installed, it just can't detect that it's currently running. (Hence the "not running Tailscale" language, which could be improved). I think it may be failing in the status block — either it can't run tailscale status
, or it's getting an unexpected result back.
Can you run this command, and post the output of a few fields?
/Applications/Tailscale.app/Contents/MacOS/tailscale status --json
This will return a big JSON blob. Don't post it here, since the endpoint IPs can be private information, but I'm interested in the values of these fields: Version
, BackendState
, and Self.UserID
.
from docker-extension.
/Applications/Tailscale.app/Contents/MacOS/tailscale status --json
Ah! That won't work, since the executable from the AppStore sports a capital 'T' on case-sensitive APFS installations. As in /Applications/Tailscale.app/Contents/MacOS/Tailscale status --json
. Had me fall on my nose a couple of times already when I used the CLI commands.
$ ll /Applications/Tailscale.app/Contents/MacOS/
total 12892
-rwxr-xr-x 1 0 31M 7 Jul 00:56 Tailscale
If macOSTailscalePath
in your linked code does not expect the capital-T-tailscale-executable, then that would explain a lot.
The output anyways:
$ /Applications/Tailscale.app/Contents/MacOS/Tailscale status --json | grep -e 'Version\|BackendState\|UserID'
"Version": "1.26.2-t9e47908f1-g9d2e332ad",
"BackendState": "Running",
"UserID": 19836734270013662
from docker-extension.
Ahhh, shoot. I thought the executable was lowercase. That explains it! I'll make a fix.
Thanks again for reporting and troubleshooting with me.
from docker-extension.
Thank you for being so nice and helpful. 🫡
I saw #39, but I had quietly hoped you'd fix the App Store application bundle, instead of the Docker Extension. Scripts that run perfectly fine on all sorts of Unixy/Linuxy systems fail miserably on macOS bc of the weird renaming. I know how annoying the wait can be for a new App Store release, but then, it would streamline things so much...
from docker-extension.
At this point, I don't think we'd rename that binary because of how people rely on it. We may be able to provide an alias within our bundle if that'd help. But for these scripts that run cross-platform on unix-y systems that fail on macOS, don't you already have to provide a custom path to the script anyways?
(As a side note, our official recommendation for folks using the CLI on macOS is to set up an alias for easy access)
from docker-extension.
Related Issues (20)
- Show tailnet ID HOT 1
- Set up deployment process HOT 1
- Cache Tailscale state for faster startup
- Add bugreport / debugging mechanism
- Add support for Linux desktops HOT 1
- Podman implementation HOT 4
- Add additional extension labels
- Warn when opening in browser but not properly authenticated on host device
- Warn users when containers are running but not exposed
- Tailscale Desktop not assigning unique static IPs per device HOT 3
- Updating Tailscale docker extension from Docker Hub HOT 1
- Login links do not open with Docker Desktop 4.15.0 HOT 42
- Set up CI to auto-publish the latest Docker extension tag
- Docker Desktop Extension shows host does not have Tailscale installed but it does HOT 2
- Enable Tailscale SSH HOT 3
- How to upgrade tailscale? HOT 9
- Keep docker-extension version synchronized with the stand-alone and app store versions HOT 4
- Docker Desktop does not correctly detect Mac App Store
- Add "open Docker Desktop" to login flow HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docker-extension.