-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Copy mechanism #53
base: master
Are you sure you want to change the base?
Copy mechanism #53
Conversation
I guess the question is whether we want to copy from the docker Samba where there is an existing zip file, or download from a release. If we copy from the docker Samba, we would ensure all machines have the same version, but might tricky to show what has changed since last time. |
Downloading from a release might be the sensible thing. Samba was only really useful for interactively hosting and mounting the files. Either way, we need a version number included in the release, something we can check against. Like a |
If we are downloading from a release, we probably won't need Samba at all in the end? Also this PR looks like it's focussing on a local zip file rather than downloading from a release? |
Yep, could skip it altogether.
Yes, I think we should be able to replace the local zip path with the zip from a GitHub release. It'd need to be a release as opposed to downloading from master as I don't think submodules are included in a master zip. |
I'm struggling to think through the workflow of downloading a release. Here is the release workflow I can see:
I can see a benefit with this, in that anywhere in the world users would get the latest releases. But they would still need to connect to a database which would be within a company. If we were to copy from a local Samba share, here is the workflow as I can see it;
I see this as the safer workflow for companies. They can test out a new release before committing the production to it. Also the administrators/developers would know which version is on each machine. |
One of the advantages of distributing with Docker is that we can git out of the loop. Instead, they could launch a Docker container containing the tools necessary for downloading a release. $ docker run --rm -v /install/dir:/volume avalon/install Where |
That is very true! That could essentially be our install part, where the user could install it anywhere they want. |
Done some experimenting. The fastest way of copying from a container seems to be with Dockerfile-install
Install docker run -t -d --rm --name avalon-install avalon/install
docker cp avalon-install:avalon /Users/admin/.avalon
docker kill avalon-install |
We could also go the whole way and make an installer executable with python scripts and PyInstaller or py2exe. But I haven't got any experience with installers, so don't know how difficult it is to make cross-platform installers. |
What I had in mind is a little different, let me know what you think of this.
|
|
Likely Samba related. When we mount e.g.
Sure, you can mount the Docker engine into a Docker container, giving a container access to the host's Docker command. It's a little hacky, but I've used a few containers now that are doing that and it's been working fine. Look at some of these mad docker commands: 1, 2
Actually now that I think about it, I think running it without argument should launch a little installation guide. Just something to confirm the install, and the destination path. $ docker run -ti --rm ...
...
Where would you like to install Avalon?
[c:\users\toke\.avalon]
Allright, everything is ready to go, proceed?
[yes]
Installing...
Finished successfully! Type `avalon` to start. Where every choice is pre-filled with a suggestion, and can be overridden by just typing something. Similar to the VMWare install on Linux This could then also check for the Could be a simple Python script. What do you think? |
Yeah, sounds great to me :) |
Do not merge
Related to #43 (comment)