How to manage docker-compose.override.yml file between macOS and Windows? - windows

The situation is that I have three developers working on a project. One developer is on Mac OS X and the other two are on Windows 10 Pro machines. My project consists of .NET Core 3.1 SDK and utilizes docker support to run. It was created in Windows initially so the docker-compose.override.yml file has the following lines of code under Volumes:
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
This works perfectly on Windows environments. However on the Mac OS X side the developer constantly has to update the config of docker-compose.override.yml volumn links to look like the following:
- ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro
- ~/.aspnet/https:/root/.aspnet/https:ro
Has anyone ever dealt with a situation like this? What did you do to overcome it besides asking the developer to BootCamp or Virtualize Windows 10 on their Mac?
Update:
I just tried to update the docker-compose.override.yml file to accept the Mac OS X volume lines. I ran it on my Windows machine as well as my Mac OS X machine. It seemed to work properly. I have reached out to my developers to test it out on their machines to see if it will work. Once I get their responses I will update this question.
Update #2:
Looks like my developers on both platforms are able to run the docker-compose project using the Mac OS X Volume lines.

A few options come to mind:
Have the Windows devs use WSL so the paths match Mac OS X
Declare environment variables for each path and reference those in the config
Have an extra compose file that contains the volume declarations but isn't checked into source control so it doesn't get overwritten
I've not done any of these so can't say if there's any pitfalls, but the 2nd and 3rd approaches I have used in the past on non-Docker projects where this kind of scenario occurs.

Related

What am I missing in my OS X Squirrel configuration?

I'm deploying an Electron app with Squirrel on the backend to do updates. The Windows deployment works just fine, updating from a .nupkg at this sample path:
https://host/update/win32/1.0.1/RELEASES
However, the Mac version (which I'm supplying a .zip file to as per the docs) does not seem to work. I've run across some contradictory information on the pathing (and have tried them all, plus a great many variations in case there were typos in the docs), but the very latest info I could find is what I'm using now:
https://host/update/darwin_x64/1.0.1
What path should I be using for OS X? Is there perhaps something about the .zip file that Electron-builder (with the Squirrel module) is creating that might be causing a problem?
Your question is tagged as electron-builder. electron-builder supports server-less and simple auto-update.
My code signing environment variables were not getting properly set in my OS X build script, so code signing was not happening. In order for OS X apps to update via Squirrel, both the new and the old versions MUST be signed.

how to check mac machine is busy with some taco build of cordova project on windows machine

My problem is that, I have 3 windows machines and 3 mac machines. I can make build on any mac machine using any windows machine using taco build command. Suppose Mac 1 machine is busy with windows 1 machine for making ios build. if windows 2 machine want to make build on mac 1 it should automatically switch on mac 2 or mac 3. Please let me know how I can do that.
I don't know if there's a great answer to this question. Here's just some suggestions - a couple things to consider:
Load Balancers - if you have the infrastructure in place, you can setup a load balancer to front the multiple different mac build machines. Then, point your windows machines to that load balancer.
Consider a third party solution like http://www.macincloud.com/.
Consider a third party build solution like using VSTS to build your source for IOS. https://msdn.microsoft.com/en-us/library/vs/alm/build/xcode/xcode-projects
Point your individual Windows machines to their own individual mac build machines.

Icenium / Phonegap Build - how do they create IOS ipa?

I'm currious to know how e.g. Telerik Icenium / Phonegap Build creates IOS ipa files?
Do they use physical mac's for this task or how do they come about this?
Or rephrased: Can I in any way create Cordova ipa files on Windows?
You don't need an actual Mac, just Mac OSX. If you don't feel like buying a mac than you can get a hold of the image of Mac OSX and install it onto your PC using Virtual Machine software. I use VMWare to run MacOSX from my Windows 7 x64 machine.
VM's are a great way to go, the driers can take a bit to setup, but once everything is working it's perfect.
VM's even support ethernet so from within the VM you can browse the web, download mac apps.
Install things like XCode or GameSalad. I suggest researching how to use Virtual Machines.
(I'm part of Icenium team). Yes, we're using physical Mac machine to build your app for iOS.

Using Time Machine for test environment rollback for Mac platform

When I'm testing software I'm going to deploy or running through tests in the Windows world, I'll use VMWare images so that I can start from a fresh, known state at the beginning of each test. This has worked really well so that I can install software on different OS flavors or with other/different apps and drivers loaded. This makes it super simple to duplicate or nearly duplicate a customer's environment when addressing issues that crop up.
Now I'm tasked with doing something similar for Mac OS X. I'm far less familiar with this OS and didn't really see the same sort of thing available. I noted that the server version of 10.5 might allow this, but I'm not running that here. I've got access to 10.5 on a Mac Book and one of those Mac Minis.
Has anyone used Time Machine to put their test Mac box into a known state? Or do you have other ideas? I'm also interested in a solution for 10.4 since some of my customers run "Tiger".
I tend to test things that don't manipulate the global computer state (i.e. a lot of well written Cocoa applications) with the "Guest" account. Since Tiger (I think), the effects of using this account are wiped at logout, so you can easily get a virgin environment again.
By default, Time Machine excludes certain paths from backup. This could be detrimental to your testing strategy, depending on the system resources that your software touches. See this article for information on the exclusions. At a bare minimum, if you are going to use Time Machine to rollback, make sure nothing you are testing depends on any of the excluded files.
But, I think there is a better alternative, if you can live with Mac OS X Server: VMWare Fusion provides support for virtualizing instances of Mac OS X Server Leopard. Then you can use the same strategy you used for Windows.
From http://www.vmware.com/products/fusion/features.html
VMware Fusion boasts the most complete
OS support, supporting more than 60
operating systems in a virtual
machine, including Windows XP, Windows
Vista, and even Mac OS X Server.
Keep in mind, you cannot virtualize Mac OS X Client due to license restrictions, though.
An alternative (perhaps more lightweight) solution that I just found recently is an app called RooSwitch. It lets you swap configurations for an application. So you could have a bunch of different prefs files, cache files, etc for your app and create a named configuration for it. You can create multiple configurations to test new user setup, or to reproduce an issue using a customer's data without losing your own config. RooSwitch then lets you switch between all these different configs.
I haven't used it myself yet, but heard about it on a podcast recently and thought it sounded useful for my own development and testing.

Is there something like Microsoft's TechNet or MSDN subcriptions for Apple?

I would like to test software designed to run on a Mac and would need a couple of OS versions (old ones, too) and maybe other Mac software to set up my (virtual) test machines.
For the same scenario on Windows, I can use the licenses available via TechNet or MSDN subscriptions. At the ADC Mac Dev Center, I couldn't find any specific information as to what is available. Does an ADC membership get me downloads of software / OS's to test against? If not, what is available?
Bear in mind that I don't believe any version of Mac OS (barring OS X Server) is licensed for use in a VM. In theory, if you want to test different versions of the OS you'll need to do either multiple installs on a single system (My first iMac came with OS 9 and OS X installed this way, not sure you could get multiple OS X versions installed on a single box) or have lots of boxes.
Yes it does. You can download the operating systems as well as betas (although not as early as "proper" beta testers).

Resources