Skip to content
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

Upgrade dokku version #1

Closed
wants to merge 20 commits into from
Closed

Upgrade dokku version #1

wants to merge 20 commits into from

Conversation

d1ceward
Copy link

@d1ceward d1ceward commented Apr 19, 2018

Upgrade to dokku v0.12.4 with new go plugins, etc...
Installation work fine (tested multiple time on different arch linux server)

This need an update of herokuish AUR package to v0.4.0
Link to the PR -> dokku/arch-herokuish/pull/1

@d1ceward d1ceward changed the title Upgrade to dokku v0.12.3 Upgrade dokku version Apr 25, 2018
@MorrisJobke
Copy link
Contributor

cc @josegonzalez

@josegonzalez
Copy link
Member

Does this work on all arch systems? I feel as though this needs golang as a dependency, because of the make go-build invocation.

@d1ceward
Copy link
Author

Not needed, because it build go plugins in docker containers.

From dokku repository

# /Makefile
...
go-build:
  basedir=$(PWD); \
    for dir in plugins/*; do \
	if [ -e $$dir/Makefile ]; then \
          # PLUGIN_MAKE_TARGET ?= build-in-docker
	  $(MAKE) -e -C $$dir $(PLUGIN_MAKE_TARGET) || exit $$? ;\
	fi ;\
    done
...

# Network plugin as example
# /plugins/network/Makefile
...
build-in-docker: clean
  docker run --rm \
    -v $$PWD/../..:$(GO_REPO_ROOT) \
    -w $(GO_REPO_ROOT)/plugins/network \
    $(BUILD_IMAGE) \
    bash -c "GO_ARGS='$(GO_ARGS)' make build" || exit $$?

@josegonzalez
Copy link
Member

Is docker guaranteed to be installed before this gets invoked?

@d1ceward
Copy link
Author

d1ceward commented Apr 26, 2018

Docker is in dependencies
deepinscreenshot_select-area_20180426102243

But I just noticed 2 issues :

  • It needs to have current user in docker group to create container otherwise install fail
  • Docker daemon service needs to be enabled by user with a fresh install otherwise install fail too

I don't know how to manage this, because any change on user group need re-login and starting service need elevation...

Should I switch building in container to system ?

@josegonzalez
Copy link
Member

What might make more sense is to modify the Dokku release process to expose a tarball with all the files already compiled, and then arch releases just download those binaries.

You can of course do the compilation on the system itself, but that will slow down installation.

@d1ceward
Copy link
Author

I moved compilation on system (added go dependency) and upgraded to v0.12.5.

FYI: Full installation take ~4-5 min on my shitty 2 core laptop (with all dependencies).

@josegonzalez
Copy link
Member

If I exposed all the compiled contents as a binary somewhere, could you modify this to instead pull that and extract it into place? I don't like the idea of depending on userland to compile files that may result in wildly different things if a user has slightly different installed golang.

@d1ceward
Copy link
Author

d1ceward commented Apr 27, 2018

This is a good idea and yes, i'll keep helping to maintain this package as i'm actively using dokku on Arch (i have several projects using this, was on Heroku before)

@josegonzalez
Copy link
Member

@d1ceward what needs to happen here to get this resolved?

@d1ceward
Copy link
Author

d1ceward commented Aug 1, 2018

Actually everything work (i'm using it, that's why i'm keeping it updated) but as said above it may need exposed plugins binaries to remove golang dependency.

@d1ceward d1ceward closed this May 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants