Compare commits

..

494 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
e10e62b1e9 Release 0.11.2
# History

## 0.11.2

### Bug Fixes

- #3014: @josegonzalez fix: handle case where DOKKU_DOCKERFILE_PORTS is an empty string
- #3013: @alexquick Fix some issues with config/network/repo help output
- #3012: @alexquick Fail when setting/unsetting invalid keys
- #3011: @alexquick Forward output from plugn triggers to user
- #3004: @josegonzalez Return/Exit 1 when an image being deployed is invalid

### Documentation

- #3015: @elia Tiny fixes to triggers documentation
2017-12-18 20:10:09 -05:00
Jose Diaz-Gonzalez
f425e23bdf Merge pull request #3015 from elia/patch-5
Tiny fixes to triggers documentation
2017-12-18 14:25:45 -05:00
Elia Schito
4c86c7bd26 Tiny fixes to triggers documentation
[ci skip]
2017-12-18 19:15:49 +01:00
Jose Diaz-Gonzalez
fa605b6a83 Merge pull request #3014 from dokku/dockerfile-network-ports
fix: handle case where DOKKU_DOCKERFILE_PORTS is an empty string
2017-12-17 00:56:48 -05:00
Jose Diaz-Gonzalez
1f08853fc7 fix: handle case where DOKKU_DOCKERFILE_PORTS is an empty string 2017-12-17 00:20:04 -05:00
Jose Diaz-Gonzalez
40421b32a4 Merge pull request #3013 from alexquick/fix-help
Fix some issues with config/network/repo help output
2017-12-16 23:50:09 -05:00
Jose Diaz-Gonzalez
f3d6190e18 Merge pull request #3012 from alexquick/fix-config-invalid-keys
Fail when setting/unsetting invalid keys
2017-12-16 23:49:53 -05:00
Jose Diaz-Gonzalez
46377071ea Merge pull request #3011 from alexquick/fix-config-restart-output
[config] forward output from plugn triggers to user
2017-12-16 19:35:26 -05:00
Alex Quick
5fbe28f672 [config] stream output of app-restart & post-config-update plugn triggers to stdout/err 2017-12-16 11:32:06 -05:00
Alex Quick
302d82a192 fix indentation for network/repo help 2017-12-15 10:06:45 -05:00
Alex Quick
061ea9bfd7 [config] fix help output
* `dokku:help --all` was getting mangled
* `dokku config:help` wasn't working
2017-12-15 10:06:19 -05:00
Alex Quick
f8e3bdc56b [config] forward output from plugn triggers to user 2017-12-15 09:37:28 -05:00
Alex Quick
92d7e8ce65 [config] let user know if they are unsetting a non-existent config key 2017-12-15 09:22:56 -05:00
Alex Quick
e7faec3e26 [config] fail on setting/unsetting invalid keys 2017-12-15 09:20:18 -05:00
Jose Diaz-Gonzalez
72a847a6f1 Merge pull request #3004 from dokku/2916-fail-on-invalid-image
fix: return/exit 1 when an image being deployed is invalid
2017-12-14 00:21:13 -05:00
Jose Diaz-Gonzalez
0e007a1196 fix: declare and set variables separately 2017-12-13 23:39:04 -05:00
Jose Diaz-Gonzalez
af626a51cc fix: set IMAGE variable correctly 2017-12-13 23:37:14 -05:00
Jose Diaz-Gonzalez
4bb221d89a Release 0.11.1
# History

## 0.11.1

### Bug Fixes

- #3010: @josegonzalez fix: route config_all to the `config` command to fix datastore plugin usage
- #3009: @josegonzalez fix: correct the guard around the config_export call in config_sub
- #3006: @josegonzalez fix: do not allow shadowing of the CACHE_DIR variable
- #3005: @josegonzalez fix: persist users in the dokku group through installations
- #3003: @josegonzalez Fix issues in apps:clone calls
- #3001: @josegonzalez fix: allow applications to begin with numeric values

### New Features

- #3002: @josegonzalez fix: omit redirection of docker build output
- #3000: @josegonzalez fix: remove golang files and triggers directory for packaging
2017-12-13 19:26:46 -05:00
Jose Diaz-Gonzalez
984388d191 Merge pull request #3010 from dokku/josegonzalez-patch-1
fix: route config_all to the `config` command to fix datastore plugin usage
2017-12-13 17:37:56 -05:00
Jose Diaz-Gonzalez
f0ef1daa15 fix: route config_all to the config command 2017-12-13 17:37:29 -05:00
Jose Diaz-Gonzalez
3d065bf35c Update functions 2017-12-13 17:17:10 -05:00
Jose Diaz-Gonzalez
f1c0432375 fix: revert always returning 1 on error in release_and_deploy 2017-12-13 15:54:43 -05:00
Jose Diaz-Gonzalez
21645247fb fix: scope non-zero return on invalid image to just the deploy command 2017-12-13 15:54:19 -05:00
Jose Diaz-Gonzalez
1a350796e5 Merge pull request #3009 from dokku/josegonzalez-patch-1
fix: correct the guard around the config_export call in config_sub
2017-12-13 15:52:16 -05:00
Jose Diaz-Gonzalez
5522cf63f7 fix: revert guard and pass app arg to config_export 2017-12-13 15:46:53 -05:00
Jose Diaz-Gonzalez
52d6143d97 fix: correct the guard around the config_export call in config_sub 2017-12-13 15:39:42 -05:00
Jose Diaz-Gonzalez
0fe5c645d6 Merge pull request #3002 from dokku/josegonzalez-patch-1
fix: omit redirection of docker build output
2017-12-13 10:42:00 -05:00
Jose Diaz-Gonzalez
85d04ee11a Merge pull request #3006 from dokku/2901-cache-dir-shadowing
fix: do not allow shadowing of the CACHE_DIR variable
2017-12-13 10:39:39 -05:00
Jose Diaz-Gonzalez
343c5fb5ca Merge pull request #3005 from dokku/2908-persist-dokku-group
fix: persist users in the dokku group through installations
2017-12-13 10:39:26 -05:00
Jose Diaz-Gonzalez
4ae56cf01c fix: call tags:deploy 2017-12-13 03:16:10 -05:00
Jose Diaz-Gonzalez
8336247cc1 Merge pull request #3003 from dokku/2978-clone-fixes
Fix issues in apps:clone calls
2017-12-13 01:47:57 -05:00
Jose Diaz-Gonzalez
3fe0b56fb8 feat: add test 2017-12-13 01:31:23 -05:00
Jose Diaz-Gonzalez
329e849894 fix: do not allow shadowing of the CACHE_DIR variable
Closes #2901
2017-12-13 01:27:29 -05:00
Jose Diaz-Gonzalez
70cee2df86 fix: persist users in the dokku group through installations
Closes #2908
2017-12-13 01:24:39 -05:00
Jose Diaz-Gonzalez
2a30f45177 fix: return/exit 1 when an image being deployed is invalid
Closes #2916
2017-12-13 01:02:24 -05:00
Jose Diaz-Gonzalez
6528c4511a fix: handle case in ubuntu 16.04 where popd may fail if the dokku user does not have rights to execute in the executing user's $PWD.
Closes #2978
2017-12-13 00:44:27 -05:00
Jose Diaz-Gonzalez
fe6f339890 feat: silence cpio 2017-12-13 00:43:18 -05:00
Jose Diaz-Gonzalez
c46efa54b4 fix: do not copy the cache directory to cloned applications 2017-12-13 00:42:45 -05:00
Jose Diaz-Gonzalez
3ef3f0218f fix: omit redirection of docker build output
[ci skip]
2017-12-12 17:28:50 -05:00
Jose Diaz-Gonzalez
59414fe231 Merge pull request #3001 from dokku/josegonzalez-patch-1
fix: allow applications to begin with numeric values
2017-12-12 13:13:57 -05:00
Jose Diaz-Gonzalez
052a14f13c fix: actually reference second app 2017-12-12 11:25:46 -05:00
Jose Diaz-Gonzalez
050fa7edf3 feat: add test for apps starting with numeric characters 2017-12-12 11:25:16 -05:00
Jose Diaz-Gonzalez
e9db130b38 Merge pull request #3000 from dokku/src-clean
fix: remove golang files and triggers directory for packaging
2017-12-12 11:13:00 -05:00
Jose Diaz-Gonzalez
39aefb95c2 fix: allow applications to begin with numeric values 2017-12-12 11:12:23 -05:00
Jose Diaz-Gonzalez
f1baa1f6a5 fix: remove golang files and triggers directory for packaging 2017-12-12 03:13:07 -05:00
Jose Diaz-Gonzalez
cd9c2d7dbe Release 0.11.0
# History

## 0.11.0

### Bug Fixes

- #2998: @josegonzalez Fix issues in release process
- #2993: @josegonzalez Add config_all alias for plugin usage
- #2972: @buckle2000 Correct typo in docker-options:remove error output
- #2964: @znz Remove unused variable
- #2967: @znz Fix indentation in test file
- #2963: @znz Correct typos in config plugin and remove potential infinite recursion issue
- #2951: @josegonzalez Handle case where the app directory is a symlink
- #2939: @znz Remove unnecessary lines
- #2945: @znz Fix network plugin version
- #2937: @michaelshobbs Strip restart flag from app_user_pre_deploy_trigger
- #2931: @josegonzalez Upgrade git package for CI
- #2928: @silverfix Do not overwrite the VHOST file during installation if it exists
- #2926: @vtavernier Remove leading forward slash from app name in git-upload-pack

### New Features

- #2985: @bitmand Build a custom dhparam file once for nginx and include it as default
- #2974: @josegonzalez Upgrade to herokuish 0.3.33
- #2973: @josegonzalez Allow usage of git 2.13.0+ by unsetting GIT_QUARANTINE_PATH during git worktree usage
- #2971: @miraculixx Add support for older virtualbox versions in official Dokku Vagrantfile
- #2966: @znz Simplify internal config functions to reduce duplication
- #2751: @alexquick Move config plugin to golang
- #2938: @michaelshobbs Upgrade to golang 1.9.1
- #2736: @josegonzalez Implement Network Plugin
- #2929: @michaelshobbs Add codacy config and coverage targets

### Documentation

- #2935: @jcrben Document how to make herokuish optional during the bootstrap installation
- #2982: @agorf Correct typo in user management docs
- #2981: @agorf Correct typos in process management docs
- #2969: @znz Correct comments on network triggers
- #2965: @znz Remove spaces from config subcommand help output to mirror help output of other subcommands
- #2954: @mrname Add vernemq community datastore plugin to docs
- #2944: @axilleas Fix syntax typo in debian installation docs
- #2932: @znz Update code comment to match documentation
- #2933: @znz Fix version number for network binding documentation
2017-12-12 02:52:29 -05:00
Jose Diaz-Gonzalez
2e0939702a fix: properly copy triggers into place 2017-12-12 02:52:22 -05:00
Jose Diaz-Gonzalez
fc4903c1c9 fix: set GOPATH globally 2017-12-12 02:14:19 -05:00
Jose Diaz-Gonzalez
3f408f1304 feat: copy golang binaries into place before usage 2017-12-12 01:49:44 -05:00
Jose Diaz-Gonzalez
e3eab48e4a Merge pull request #2998 from dokku/release-cleanup
Release cleanup
2017-12-12 01:16:14 -05:00
Jose Diaz-Gonzalez
39abbdc5dd fix: ensure the trigger is moved into the correct directory 2017-12-12 00:22:18 -05:00
Jose Diaz-Gonzalez
5d5ede2b85 revert: drop reference to CGO_ENABLED completely 2017-12-12 00:09:36 -05:00
Jose Diaz-Gonzalez
64252b282a hack: ignore libc dependency 2017-12-11 23:58:50 -05:00
Jose Diaz-Gonzalez
b449227467 revert: re-enable system net usage 2017-12-11 23:46:08 -05:00
Jose Diaz-Gonzalez
228eb9ed7a revert: re-enable CGO_ENABLED=0 2017-12-11 23:44:08 -05:00
Jose Diaz-Gonzalez
a999f9d4e5 fix: set the TRIGGERS make variable properly 2017-12-11 23:26:33 -05:00
Jose Diaz-Gonzalez
9b431321fa feat: use the built-in net package instead of linking to system 2017-12-11 23:22:27 -05:00
Jose Diaz-Gonzalez
a96c1d644a fix: turn off CGO for all go builds 2017-12-11 23:22:11 -05:00
Jose Diaz-Gonzalez
6bd6cad8fd refactor: simplify triggers targets 2017-12-11 23:21:14 -05:00
Jose Diaz-Gonzalez
58cc088445 feat: converge upon a more standard Makefile for golang plugins 2017-12-11 23:16:03 -05:00
Jose Diaz-Gonzalez
1d46208ac2 fix: ensure we have a src-clean make target for the config plugin 2017-12-11 23:00:25 -05:00
Jose Diaz-Gonzalez
465c6e9a62 fix: allow lintian to pass on hardening-no-relro 2017-12-11 22:59:38 -05:00
Jose Diaz-Gonzalez
7a8cc2687d fix: ensure we call apt-get update when calling apt-get install 2017-12-11 22:56:34 -05:00
Jose Diaz-Gonzalez
96ad5e8e5d fix: update SSHCOMMAND_URL to v0.7.0 2017-12-11 22:56:12 -05:00
Jose Diaz-Gonzalez
4cc215ea02 Merge pull request #2993 from dokku/josegonzalez-patch-1
fix: add config_all alias for plugin usage
2017-12-02 14:33:10 -05:00
Jose Diaz-Gonzalez
c10c58a1cd Merge pull request #2985 from bitmand/custom_nginx_dhparams
Build a custom dhparam file once for nginx and include it as default
2017-12-02 13:57:06 -05:00
Jose Diaz-Gonzalez
099653ca02 fix: add config_all alias for plugin usage 2017-12-02 13:55:34 -05:00
Lasse Brandt
84a6c6017d Build a custom dhparam file once for nginx and include it as default 2017-11-14 12:55:52 +01:00
Jose Diaz-Gonzalez
9fcd9b0065 Merge pull request #2935 from jcrben/no-herokuish-option
docs: WIP on explaining optional herokuish
2017-11-12 13:33:05 -05:00
Jose Diaz-Gonzalez
dc9ebf867c docs: revise herokuish installation
[ci skio]
2017-11-12 13:28:36 -05:00
Jose Diaz-Gonzalez
3684c10a78 Merge pull request #2974 from dokku/josegonzalez-patch-1
feat: upgrade to herokuish 0.3.33
2017-11-11 14:28:39 -05:00
Jose Diaz-Gonzalez
10492587c2 Merge pull request #2982 from agorf/patch-2
Correct typo in user management docs
2017-11-11 13:51:15 -05:00
Jose Diaz-Gonzalez
bc93007c74 Merge pull request #2981 from agorf/patch-1
Correct typos in process management docs
2017-11-11 13:50:45 -05:00
Angelos Orfanakos
0e91a5bd0b Fix typo in user management docs 2017-11-11 13:35:52 +02:00
Angelos Orfanakos
75c7c2ebf0 Fix typos 2017-11-11 13:21:40 +02:00
Ben Creasy
6c57f1a08b docs: WIP on optional herokuish
[ci skip]
2017-11-09 22:38:22 -08:00
Jose Diaz-Gonzalez
59e5036456 feat: upgrade to herokuish 0.3.33 2017-11-05 16:09:11 -05:00
Jose Diaz-Gonzalez
158f10d321 Merge pull request #2973 from dokku/2796-git-quarantine
feat: allow usage of git 2.13.0+ by unsetting GIT_QUARANTINE_PATH during git worktree usage
2017-11-05 16:07:59 -05:00
Jose Diaz-Gonzalez
4a3047b170 feat: drop pinning of git version 2017-11-05 12:37:42 -05:00
Jose Diaz-Gonzalez
64a1c91b76 feat: allow usage of git 2.13.0+ by unsetting GIT_QUARANTINE_PATH during git worktree usage
Closes #2796
2017-11-05 12:34:47 -05:00
Jose Diaz-Gonzalez
39b879058d Merge pull request #2972 from buckle2000/patch-1
Correct typo in docker-options:remove error output
2017-11-05 12:26:36 -05:00
buckle2000
5ae9067750 Fix typo 2017-11-06 00:48:29 +08:00
Jose Diaz-Gonzalez
2af312ac03 Merge pull request #2971 from miraculixx/fix-2955
Add support for older virtualbox versions in official Dokku Vagrantfile
2017-11-04 13:04:24 -04:00
miraculixx
172bc87f32 resolve #2955 2017-11-04 14:14:02 +01:00
Jose Diaz-Gonzalez
83ef992155 Merge pull request #2969 from znz/fix-comments
Fix comments [ci skip]
2017-11-04 01:25:57 -04:00
Jose Diaz-Gonzalez
0df3f8d12d Merge pull request #2964 from znz/remove-unused
Remove unused variable
2017-11-03 18:08:00 -04:00
Jose Diaz-Gonzalez
23ee740c04 Merge pull request #2968 from znz/use-special-name
Use special name for global
2017-11-03 18:07:31 -04:00
Jose Diaz-Gonzalez
54d731aeee Merge pull request #2965 from znz/remove-spaces
Remove spaces like helps of other subcommands
2017-11-03 18:07:12 -04:00
Jose Diaz-Gonzalez
9481e7031d Merge pull request #2966 from znz/refactoring
Refactoring some codes
2017-11-03 18:07:01 -04:00
Jose Diaz-Gonzalez
70ba60e9e8 Merge pull request #2967 from znz/fix-indent
Fix indent
2017-11-03 18:05:38 -04:00
Jose Diaz-Gonzalez
04a5e8bedf Merge pull request #2963 from znz/fix-typos
Fix typos
2017-11-03 11:26:55 -04:00
Kazuhiro NISHIYAMA
9706f7a298 Fix comments [ci skip]
fix comments of `func main()`
closes #2946
2017-11-03 15:55:18 +09:00
Kazuhiro NISHIYAMA
cdd2b2028e Use special name for global
Use name with `<>` like `<unknown>` to distinguish global env and env of app named global
2017-11-03 13:41:49 +09:00
Kazuhiro NISHIYAMA
3eb7a13006 Fix indent 2017-11-03 13:30:18 +09:00
Kazuhiro NISHIYAMA
71763e18f6 Reduce copying args when global 2017-11-03 13:28:08 +09:00
Kazuhiro NISHIYAMA
e9506e80cb Reduce loading global env 2017-11-03 13:27:23 +09:00
Kazuhiro NISHIYAMA
33a540502a Remove spaces like helps of other subcommands 2017-11-03 12:51:40 +09:00
Kazuhiro NISHIYAMA
b8575a33f5 Remove unused variable 2017-11-03 12:47:30 +09:00
Kazuhiro NISHIYAMA
a3cd6f6e63 Fix typos 2017-11-03 12:42:00 +09:00
Jose Diaz-Gonzalez
85fa7a5bb0 Merge pull request #2751 from alexquick/feature-config-golang
Move config plugin to golang
2017-10-28 20:40:06 -04:00
Alex Quick
90ee5d58c5 [config] use field names in struct literals 2017-10-24 09:12:20 -04:00
Jose Diaz-Gonzalez
ffac858566 Merge pull request #2954 from mrname/adding_vernemq_to_docs
adding vernemq plugin to docs
2017-10-23 16:06:35 -04:00
Justin Crown
0f10c94839 adding vernemq plugin to docs 2017-10-23 11:51:12 -07:00
Jose Diaz-Gonzalez
0581b38adf Merge pull request #2951 from dokku/josegonzalez-patch-1
fix: handle case where the app directory is a symlink
2017-10-22 14:06:15 -04:00
Jose Diaz-Gonzalez
576ec05a9e fix: handle case where the app directory is a symlink
Closes #2943
2017-10-21 13:52:08 -04:00
Jose Diaz-Gonzalez
6f4720adca Merge pull request #2939 from znz/remove-unnecessary-line
Remove unnecessary lines
2017-10-19 10:28:14 -04:00
Jose Diaz-Gonzalez
ab3249c76b Merge pull request #2945 from znz/fix-network-plugin-version
Fix network plugin version
2017-10-19 10:27:55 -04:00
Alex
2f7daad200 fix: typo on declare 2017-10-16 20:23:30 -04:00
Alex
6780d53c77 Merge branch 'master' of github.com:dokku/dokku into feature-config-golang 2017-10-16 20:22:28 -04:00
Kazuhiro NISHIYAMA
36fc689a5d Fix network plugin version
[ci skip]
2017-10-16 21:15:36 +09:00
Alex Quick
98c45b55b7 fix: newlines at eof 2017-10-16 02:21:38 -04:00
Alex Quick
1be66bd1bc [config] don't alias import 2017-10-16 02:09:26 -04:00
Alex Quick
91c2164e49 [config] refactor package structure 2017-10-15 20:10:46 -04:00
Jose Diaz-Gonzalez
9876b9e588 Merge pull request #2944 from axilleas/patch-1
Fix syntax typo in debian.md
2017-10-15 14:08:07 -04:00
Achilleas Pipinellis
58e36fee10 Fix syntax typo in debian.md
[ci skip]
2017-10-15 13:54:13 +03:00
Alex Quick
03830562c2 move around the members of configenv to make more sense 2017-10-12 23:49:22 -04:00
Alex Quick
430cc2b4ca [config] move PrettyPrintEnvEntries 2017-10-12 23:42:14 -04:00
Alex Quick
3f497908b5 [config] use named returns where applicable 2017-10-12 23:41:42 -04:00
Alex Quick
3422866909 [config] remove spurious newlines 2017-10-12 22:50:29 -04:00
Alex Quick
b84635baf7 [config] remove old code 2017-10-12 22:49:44 -04:00
Alex Quick
ad8bcecb5b [config] clean up PlugnTrigger and NewShellCmd 2017-10-12 22:38:18 -04:00
Alex Quick
c896ca700c [config] remove vestige of old test 2017-10-12 21:42:18 -04:00
Alex Quick
ecf67d3cdd [config] add eof newlines where needed 2017-10-12 21:40:26 -04:00
Alex Quick
e9b9091de5 [config] remove extra test targets 2017-10-12 21:35:33 -04:00
Kazuhiro NISHIYAMA
62b27d4007 Remove unnecessary lines
Because never reached when `VHOST` is regular file.
(reachable when `VHOST` is fifo, etc.)

[ci skip]
2017-10-11 20:58:26 +09:00
Michael Hobbs
cc3ccda90a Merge pull request #2938 from dokku/mh/chore/upgrade-golang
upgrade to golang 1.9.1
2017-10-10 10:11:52 -07:00
Michael Hobbs
dc79152fe0 upgrade to golang 1.9.1 2017-10-10 08:13:59 -07:00
Michael Hobbs
6b340c69b5 Merge pull request #2937 from dokku/mh/fix/strip-restart-flag
strip restart flag from app_user_pre_deploy_trigger
2017-10-09 16:03:04 -07:00
Michael Hobbs
f2ec959598 strip restart flag from app_user_pre_deploy_trigger 2017-10-09 15:33:09 -07:00
Jose Diaz-Gonzalez
b16c2876c4 Merge branch 'master' into feature-config-golang 2017-10-06 11:13:15 -04:00
Jose Diaz-Gonzalez
3f50097619 Merge pull request #2932 from znz/fix-comment
Fix comment
2017-10-06 11:12:58 -04:00
Jose Diaz-Gonzalez
28ca39266c Merge pull request #2933 from znz/fix-typo
Fix version number [ci skip]
2017-10-06 11:12:07 -04:00
Kazuhiro NISHIYAMA
6dcf695822 Fix version number [ci skip]
in document of Container network interface binding
2017-10-06 20:07:18 +09:00
Kazuhiro NISHIYAMA
aeba3f2269 Fix comment
[ci skip]
2017-10-06 20:01:35 +09:00
Jose Diaz-Gonzalez
1fb0e737c3 Merge pull request #2931 from dokku/josegonzalez-patch-1
fix: upgrade git package for CI
2017-10-05 23:15:55 -04:00
Jose Diaz-Gonzalez
462a648ac8 Merge pull request #2928 from silverfix/patch-1
fix: do not overwrite the VHOST file during installation if it exists
2017-10-05 22:32:58 -04:00
Jose Diaz-Gonzalez
6523163701 fix: upgrade git package for CI 2017-10-05 22:28:24 -04:00
Jose Diaz-Gonzalez
a9a9d0a898 Merge pull request #2926 from vtavernier/issue-2915
Fix #2915
2017-10-05 22:05:55 -04:00
Jose Diaz-Gonzalez
2851f2c63f fix: remove duplicate logging functions 2017-10-05 13:26:20 -04:00
Jose Diaz-Gonzalez
5e82b37147 Merge branch 'master' into feature-config-golang 2017-10-04 19:04:31 -04:00
Jose Diaz-Gonzalez
810ebffceb Merge pull request #2736 from dokku/2403-network-plugin
Implement Network Plugin
2017-10-04 18:55:41 -04:00
Jose Diaz-Gonzalez
adedd3af5d fix: avoid Hash Sum mismatch errors 2017-10-04 01:11:09 -04:00
Jose Diaz-Gonzalez
722f22e7f0 fix: avoid old gpg key error 2017-10-04 01:06:17 -04:00
Jose Diaz-Gonzalez
ad732bd42b feat: add network:report command 2017-10-04 00:58:29 -04:00
Michael Hobbs
fdbab2c291 fix test coverage deps 2017-10-02 16:57:45 -07:00
Michael Hobbs
8654783131 style tweaks 2017-10-02 16:50:05 -07:00
Michael Hobbs
b099d2c389 add more tests 2017-10-02 16:49:54 -07:00
Michael Hobbs
c9ea884e5d move coverage command to only run on ci 2017-10-02 16:36:12 -07:00
Michael Hobbs
fbf9077075 make test more flexible 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
5e32f9a89d refactor: go back to the old regex 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
690c32ceb8 fix: use the same method to trigger the client 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7d73577952 refactor: use grep -E instead of egrep 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
edfec35177 feat: add symlinks to all network and proxy hooks 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
c2ee6e99c6 fix: update unconfigured client test regex 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
419d687c50 fix: remove proxy enabled checks when retrieving a container's ip and port 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
3ca5503b74 fix: actually echo the property 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
acde3d60a7 feat: allow users to bind to all interfaces when a proxy is enabled
- use a plugin trigger to see whether we should bind to all interfaces
- create a generic way of setting properties for a plugin
- migrate proxy-enabled to the new network property "bind-all-interfaces"
- add network:set subcommand
2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7a4464a8ae feat: more loggers 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
096ba83f41 refactor: alphabetize more functions 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
04cd5eeb91 refactor: move all logging functions to their own file 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
9d287d0a5d refactor: alphabetize functions 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
af13d1247f refactor: consolidate DOKKU_DISABLE_PROXY usage into the proxy plugin 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
81ddef04ff refactor: drop direct access to PORT files 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
9ef7c385d4 refactor: drop extra sub-shell 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
dc00542b6f refactor: remove use of IP and PORT files from core-post-deploy plugin 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7fe2f8593c refactor: remove unused IS_HEROKUISH_CONTAINER argument 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
20dca9fd46 fix: convert the containerIndex to a string to ensure it is properly passed to the plugn trigger 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
647efab2dd fix: ensure we always call proxy-build-config when calling ps_start 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
44282fd857 fix: Declare and assign separately to avoid masking return values. 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1372522258 fix: Declare and assign separately to avoid masking return values. 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
27f247eabd fix: do not shadow id variable 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
a3abf8016b fix: correct lint errors 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
3b9f4ba63f fix: correct lint errors 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
92d6e76ea4 fix: ignore vendor directories 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
350efd8d53 chore: remove use of deprecated method 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
6f008d6643 fix: use correct conditional check for isHerokuishContainer 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
6e76831b5d fix: use correct flag parameter for app name 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
31333452c8 fix: refactor retrieval of network and docker inspect information 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
25759bcbb4 fix: use correct flag positional argument 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
72eb8a06f0 fix: respond to all review comments 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1e8831d9a0 chore: remove unused nullglob 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
c788659b63 refactor: rewrite network plugin in golang 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
e74346f0dc fix: call correct command 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
5b592575e7 fix: call correct command 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
c43a3edfc6 fix: ensure ports are set to an array 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
94149c8445 fix: properly pass PROC_TYPE 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7fd32fb3e8 fix: properly retrieve ports list 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
006eb452f1 fix: do not generate network config if there is no generated scale file 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
2c5190bf63 fix: set IS_HEROKUISH_CONTAINER=false to false by default 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
0cc9e42c59 fix: check IS_HEROKUISH_CONTAINER value check 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
b409af602a fix: call network-get-ipaddr correctly 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
b0afa778fb chore: minor cleanup 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
b8a4152e10 fix: call the correct method in the proxy-build-config hook 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
4949d1e33e fix: always pass in IS_HEROKUISH_CONTAINER 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
06a7cb2a3d fix: check correct variable 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
aee88d081d fix: add missing proxy/functions source call 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
f71d147a8f fix: add missing argument 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
dfad37ba23 fix: cleanup issues retrieving the port and ipaddr for a container 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1a2ed28e5b docs: add documentation for all new triggers 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
054a1328f7 fix: thren => then 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
901ec7c213 refactor: retrieve ip and port for checks from the network plugin triggers 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
6fbd148597 fix: properly name variable to avoid reference issues 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
d7d5d373c9 feat: refactor to retrieve listeners from network plugin 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
a9e0f8b7be fix: ensure we write the ipaddr and port 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
f668bec210 docs: move dns and proxy management to new networking section 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1835b04809 feat: refactor to use network plugin
- Add proxy-build-config hook to rebuild network and proxy settings for an application
- Scope nginx:build-config to work only when it is the configured proxy for an application
- Refactor deploy code to interact with network plugin for computed and actual ipaddr/port settings
- Ensure the proxy-build-config plugin trigger is called on ps:restore
- Expose a few plugin triggers for retrieving networking information for a given APP/PROC_TYPE/CONTAINER_ID combination
2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
ec9b8be5f8 feat: implement first-pass at networking plugin
Implements help, `rebuild`, and `rebuildall` command.

Refs #2403
2017-10-02 15:05:13 -07:00
Michael Hobbs
8be92d9739 Merge pull request #2929 from dokku/mh/chore/codacy
add codacy config and coverage targets
2017-10-02 15:04:38 -07:00
Michael Hobbs
bbb38031f0 add codacy config and coverage targets 2017-10-02 14:41:03 -07:00
Jose Diaz-Gonzalez
c25ef5dc4c fix: Declare and assign separately to avoid masking return values 2017-10-02 11:57:50 -04:00
Jose Diaz-Gonzalez
093414b846 feat: add logging 2017-10-02 11:48:29 -04:00
Jose Diaz-Gonzalez
f664ad1cde fix: remove extra whitespace 2017-10-02 11:40:31 -04:00
Andrea Rabbaglietti
5e9306ad40 Fix #2927
Fix to prevent dokku upgrade on debian systems overwrites ${DOKKU_ROOT}/VHOST
2017-10-02 17:37:17 +02:00
Vincent Tavernier
c9af7e4cfa Fix #2915
Add forward slash cleanup of the app name for the git-upload-pack
command. Prevents is_valid_app_name from removing the application folder
on `git fetch`.
2017-10-02 09:29:30 +02:00
Alex Quick
5d72f145df [config] restore dokku config functionality and fix docs 2017-10-01 22:50:01 -04:00
Jose Diaz-Gonzalez
5b3506584a Release 0.10.5
# History

## 0.10.5

### Bug Fixes

- #2912: @josegonzalez Add missing depends statement for rsyslog
- #2906: @manuel-colmenero Check the location of nginx in a central way
- #2895: @josegonzalez cd to app directory when calling git worktree add

### Documentation

- #2922: @axilleas Clarify the minimum Nginx version for HTTP/2 support
- #2919: @wootwoot1234 Update nginx documentation surrounding file uploading for php buildpack users
- #2913: @znz Fix a typo in the rpm release script
- #2910: @buckle2000 Add a note about using the full git url for non-compliant toolchains
2017-10-01 15:12:30 -04:00
Jose Diaz-Gonzalez
27748f9576 Merge pull request #2922 from axilleas/docs/nginx-http2
Clarify the minimum Nginx version for HTTP/2 support
2017-10-01 14:46:34 -04:00
Jose Diaz-Gonzalez
e6f7d4a732 docs: remove unnecessary doc explanation
[ci skip]
2017-10-01 14:46:20 -04:00
Jose Diaz-Gonzalez
32b18a8a5c Merge pull request #2924 from dokku/josegonzalez-patch-1
fix: use a colon instead of a slash for remotes
2017-10-01 14:42:32 -04:00
Jose Diaz-Gonzalez
160a5c9760 fix: use a colon instead of a slash for remotes
Using a slash is broken as it will assume that is part of the remote name.

[ci skip]
2017-10-01 14:42:07 -04:00
Achilleas Pipinellis
dde1531f42 Clarify the minimum Nginx version for HTTP/2 support
Add docs for https://github.com/dokku/dokku/pull/2496

[ci skip]
2017-10-01 12:12:14 +02:00
Alex Quick
60e3b37d39 [config] trigger app restart through plugn rather than exec 2017-09-27 23:56:43 -04:00
Alex Quick
a8563489e7 [common] fix PlugnTrigger 2017-09-27 23:56:42 -04:00
Alex Quick
a86c037a91 [config] upgrade to godotenv 1.2.0 2017-09-27 23:56:42 -04:00
Jose Diaz-Gonzalez
523429b47f fix: ignore vendor directories 2017-09-27 23:56:42 -04:00
Alex Quick
a13722eec1 [config] update glide dependencies 2017-09-27 23:56:42 -04:00
Alex Quick
8e8b6d60f0 fix: Declare and assign separately to avoid masking return values. 2017-09-27 23:56:42 -04:00
Alex Quick
4808c047ee [config] make HasKey more idiomatic 2017-09-27 23:56:42 -04:00
Alex Quick
be5e81b246 [config] config:get exit with status 1 if key is not set in env 2017-09-27 23:56:42 -04:00
Jose Diaz-Gonzalez
a137ed64dc fix: Declare and assign separately to avoid masking return values. 2017-09-27 23:56:42 -04:00
Jose Diaz-Gonzalez
fc1129c728 fix: correct flake8 issues 2017-09-27 23:56:42 -04:00
Alex Quick
a22594b891 [config] update docs 2017-09-27 23:56:41 -04:00
Alex Quick
4f5c747c99 [config] add config:export --format shell 2017-09-27 23:56:41 -04:00
Alex Quick
e7a81a8f8b [config] error message when no key is given for config:get 2017-09-27 23:56:41 -04:00
Alex Quick
32414b343a [config] show empty config when ENV file doesn't exist yet 2017-09-27 23:56:41 -04:00
Alex Quick
eeb6e78fa4 [config] move to godotenv 2017-09-27 23:56:41 -04:00
Alex Quick
08aa2b9fa4 [config] improve logging and default command 2017-09-27 23:56:41 -04:00
Alex Quick
8b90d4ebf9 [config] move vendor to right place 2017-09-27 23:56:41 -04:00
Alex Quick
133fdc1f0a [config] support for old export-style config files 2017-09-27 23:56:41 -04:00
Alex Quick
e7e01ee838 [config] fix shellcheck 2017-09-27 23:56:40 -04:00
Alex Quick
12c9536a7b [config] test python buildpack too 2017-09-27 23:56:40 -04:00
Alex Quick
c20fbfccf6 [config] support for env bundles 2017-09-27 23:56:40 -04:00
Alex Quick
fd27d90303 [config] config:export --merge, --prefix, & --suffix 2017-09-27 23:56:40 -04:00
Alex Quick
686428a41a [config] lint fixes 2017-09-27 23:56:40 -04:00
Alex Quick
73e85b7df5 [config] preliminary Dockerfile support 2017-09-27 23:56:40 -04:00
Alex Quick
dfa241d6a9 [dockerfile] test new config stuff 2017-09-27 23:56:40 -04:00
Alex Quick
dd8e1fdf45 [config] no longer reenter dokku in config/functions 2017-09-27 23:56:40 -04:00
Alex Quick
21b091ab14 [config] update test-deploy-config to include odd characters 2017-09-27 23:56:40 -04:00
Alex Quick
416b499670 [nginx-proxy] remove trailing spaces from PROXY_PORT_MAP
this plugin used to rely on the fact that config
supressed trailing spaces
2017-09-27 23:56:39 -04:00
Alex Quick
dc90a889d7 [config] add config:set --encoded (base64)
You can now set b64encoded values. They are
stored decoded, this is so dokku over ssh can set
odd config values
```
config:set --encoded KEY=BASE_64_VALUE
```
2017-09-27 23:56:39 -04:00
Alex Quick
14757ca925 [config] change file format to match bash exports
got rid of nonstandard escaping/quoting so that
the disk file is a strict subset of valid bash exports
2017-09-27 23:56:39 -04:00
Alex Quick
7d865ccb1f [config] refactor makefile 2017-09-27 23:56:39 -04:00
Alex Quick
294d4b1f29 [config] first cut of config rewritten in golang
still to do:
* Rework disk format to be okay with quotes
* Fix Dockerfile deployments
* Dedup code in the subcommands
* Add --encode
* Add deploytests for the new stuff
* Restore some log messages (should I make some helpers in common?)
* Restore some functions that may be used by 3d-party plugins
2017-09-27 23:56:39 -04:00
Alex Quick
5e3184b61d [common] helper for go trigger plugn events 2017-09-27 23:56:39 -04:00
Alex Quick
e57e1408b2 [common] add NewTokenizedShellCmd to ShellCmd 2017-09-27 23:56:39 -04:00
Alex Quick
ef95d2bcd4 [config] test some config oddities 2017-09-27 23:56:39 -04:00
Jose Diaz-Gonzalez
d8602c52af Merge pull request #2919 from wootwoot1234/patch-1
Update nginx.md
2017-09-27 23:14:38 -04:00
Jose Diaz-Gonzalez
657bb1d2a1 docs: clarify Procfile/nginx.conf usage
[ci skip]
2017-09-27 23:14:23 -04:00
Tom
0bd6b041c8 Update nginx.md
Added an explanation of how to add additional nginx configuration to the `nginx.conf` file imported in a Procfile. Here's a related issue: https://github.com/dokku/dokku/issues/2917#issuecomment-332704867
2017-09-27 21:50:14 -05:00
Jose Diaz-Gonzalez
28077dff67 Merge pull request #2913 from znz/fix-typo
Fix a typo [ci skip]
2017-09-26 12:51:24 -04:00
Kazuhiro NISHIYAMA
68917f12fb Fix a typo [ci skip] 2017-09-26 20:55:15 +09:00
Jose Diaz-Gonzalez
bb1b657ac9 Merge pull request #2912 from dokku/josegonzalez-patch-1
fix: add depends statement for rsyslog
2017-09-25 14:55:37 -04:00
Jose Diaz-Gonzalez
07c83d4d32 fix: add depends statement for rsyslog
Refs #2911
2017-09-25 13:43:07 -04:00
Jose Diaz-Gonzalez
264109360b Merge pull request #2910 from buckle2000/master
Mention full git URL
2017-09-23 02:58:34 -04:00
Jose Diaz-Gonzalez
2278290b91 docs: reword note.
[ci skip]
2017-09-23 02:58:25 -04:00
buckle2000
23bcb4127a Update application-deployment.md
Well, please add a yellow "warning" background to the added backquote.
2017-09-23 14:53:35 +08:00
Jose Diaz-Gonzalez
8004f0962c Merge pull request #2906 from manuel-colmenero/master
fix: Check the location of nginx in a central way
2017-09-19 13:53:21 -04:00
Jose Diaz-Gonzalez
689f0443f3 chore: remove unnecessary dokku_log_fail
[ci skip]
2017-09-19 13:53:00 -04:00
Manuel Colmenero
441e864ea1 fix: Declare and assign separately to avoid masking return values
Fixes the introduced CI warnings.
2017-09-19 19:14:48 +02:00
Manuel Colmenero
4f17392bf1 fix: Move operator inside the brackets 2017-09-19 08:27:21 +02:00
Manuel Colmenero
deace7a03a fix: Remove unnecessary nesting 2017-09-19 08:26:55 +02:00
Manuel Colmenero
c49f81cd8b fix: Check first in $PATH for nginx, use sbin location as backup 2017-09-18 21:19:30 +02:00
Manuel Colmenero
bada02a122 Use double brackets instead of single ones 2017-09-18 21:09:03 +02:00
Manuel Colmenero
3d785360e1 fix: Check the location of nginx in a central way
- Now there's only a "single source of truth" for the location of the nginx
  binary.
- It is checked if it's there before it's needed.
2017-09-18 20:19:27 +02:00
Jose Diaz-Gonzalez
3a81c8f279 Merge pull request #2895 from dokku/2864-git-rebuild-in-dir
fix: Change to app directory when calling git worktree add
2017-09-02 14:33:08 -04:00
Jose Diaz-Gonzalez
9f64fdb9b6 fix: Change to app directory when calling git worktree add
Closes #2864
2017-09-02 14:10:47 -04:00
Jose Diaz-Gonzalez
e9873c58a8 Release 0.10.4
# History

## 0.10.4

### Bug Fixes

- #2894: @josegonzalez fix: bail if any step in the release process fails
- #2880: @josegonzalez fix: properly detect empty subcommands
- #2881: @josegonzalez Verify app name on git push
- #2858: @cstroe Use correct port number for the upstream.
- #2848: @josegonzalez Ensure https applications return an https url from `dokku url`
- #2839: @josegonzalez fix: skip clearing cache if we are not building a herokuish image

### New Features

- #2890: @michaelshobbs use circleci 2.0
- #2847: @scjody Add nginx ppa before installing Dokku
- #2850: @michaelshobbs add optional PROC_TYPE and CONTAINER_INDEX to docker-args-deploy plugn trigger
- #2840: @josegonzalez Add DYNO environment variable to run containers
- #2824: @josegonzalez Upgrade herokuish to version 0.3.31

### Documentation

- #2861: @adelq Use non-deprecated apps command
- #2878: @m0rth1um Add telegram notifications plugin
- #2876: @josegonzalez docs: clarify storage documentation caveats
- #2873: @josegonzalez docs: add a note on which docs to look at for customizing nginx docs
- #2867: @josegonzalez docs: cleanup help output for dokku shell
- #2859: @josegonzalez docs: use relative link for application deployment doc
- #2866: @josegonzalez Add missing migration guides
- #2863: @josegonzalez docs: fix syntax on getting started docs
- #2836: @fishnux Add a note regarding nginx dependency to installation docs
- #2834: @iansu Clarify port exposure in Dockerfile documentation
2017-09-02 13:15:23 -04:00
Jose Diaz-Gonzalez
a4a3bfc556 Merge pull request #2894 from dokku/release-error-catching
fix: bail if any step in the release process fails
2017-09-02 02:44:41 -04:00
Jose Diaz-Gonzalez
235115af9c Merge pull request #2880 from dokku/2849-empty-subcommand
fix: properly detect empty subcommands
2017-09-02 02:44:30 -04:00
Jose Diaz-Gonzalez
aa82042db2 fix: bail if any step in the release process fails 2017-09-01 23:51:15 -04:00
Jose Diaz-Gonzalez
e8f1ce501a fix: check that subcommand is non-zero in length 2017-09-01 23:43:58 -04:00
Jose Diaz-Gonzalez
a4f4bef1f6 fix: remove syntax error 2017-09-01 23:16:10 -04:00
Jose Diaz-Gonzalez
6aa315f815 fix: properly detect empty subcommands
Closes #2849
2017-09-01 23:16:10 -04:00
Jose Diaz-Gonzalez
15494d85a9 Merge pull request #2881 from dokku/2807-bad-app-name
Verify app name on git push
2017-09-01 11:59:49 -04:00
Michael Hobbs
787e2f106a Merge pull request #2890 from dokku/mh/chore/circle-2.0-machine-exec
use circleci 2.0
2017-08-29 13:53:21 -07:00
Michael Hobbs
4db991c891 use circleci 2.0 2017-08-29 13:12:03 -07:00
Jose Diaz-Gonzalez
ab11453fc8 feat: validate app name when running git functions 2017-08-19 19:16:40 -04:00
Jose Diaz-Gonzalez
1a5bea6dde refactor: extract app name validation 2017-08-19 19:16:16 -04:00
Jose Diaz-Gonzalez
5e0ea9c734 Merge pull request #2858 from cstroe/issue-2857-nginx-conf-with-multiple-expose-ports
Use correct port number for the upstream.
2017-08-19 19:08:13 -04:00
Jose Diaz-Gonzalez
68e628d384 Merge pull request #2861 from adelq/patch-1
Use non-deprecated apps command
2017-08-19 19:05:29 -04:00
Jose Diaz-Gonzalez
0babde74f3 docs: update uninstallation docs to clarify which subcommand to use for listing applications
[ci skip]
2017-08-19 19:03:20 -04:00
Jose Diaz-Gonzalez
42cee30187 Merge pull request #2878 from m0rth1um/patch-1
Add telegram notifications plugin
2017-08-19 18:31:36 -04:00
Moritz Mackiewicz
c50f1c8830 Update plugins.md 2017-08-19 19:01:41 +02:00
Jose Diaz-Gonzalez
1db9e16006 Merge pull request #2876 from dokku/josegonzalez-patch-1
docs: clarify storage documentation caveats
2017-08-17 15:05:49 -04:00
Jose Diaz-Gonzalez
3bf3bb433b docs: clarify user/group id
[ci skip]
2017-08-17 14:43:56 -04:00
Jose Diaz-Gonzalez
fa0b4b26ac docs: clarify storage documentation caveats
[ci skip]
2017-08-17 14:36:23 -04:00
Jose Diaz-Gonzalez
ec9f81b323 Merge pull request #2873 from dokku/jdg-customization-notes
docs: add a note on which docs to look at for customizing nginx docs
2017-08-15 11:26:08 -04:00
Jose Diaz-Gonzalez
c400bc8f03 docs: add a note on which docs to look at for customizing nginx docs
[ci skip]
2017-08-15 11:25:50 -04:00
Dmitry
fc2fb71396 docs: fix vertical scroll for the slack-channel section (#2869) 2017-08-14 06:36:55 -05:00
Jose Diaz-Gonzalez
e8287b839f Merge pull request #2867 from dokku/josegonzalez-patch-1
docs: cleanup help output for dokku shell
2017-08-10 17:30:00 -04:00
Jose Diaz-Gonzalez
fcd713b23c docs: cleanup help output for dokku shell
[ci skip]
2017-08-10 17:28:47 -04:00
Jose Diaz-Gonzalez
294f82c327 Merge pull request #2859 from dokku/josegonzalez-patch-1
docs: use relative link for application deployment doc
2017-08-09 17:25:57 -04:00
Jose Diaz-Gonzalez
0cc8ee6669 Merge pull request #2866 from dokku/josegonzalez-patch-2
Add missing migration guides
2017-08-09 17:25:46 -04:00
Jose Diaz-Gonzalez
e7a2284226 Create 0.10.0-migration-guide.md
[ci skip]
2017-08-09 17:23:51 -04:00
Jose Diaz-Gonzalez
64162a0bfd Create 0.9.0-migration-guide.md 2017-08-09 17:19:53 -04:00
Jose Diaz-Gonzalez
c2f92e07d9 Create 0.8.0-migration-guide.md 2017-08-09 17:15:30 -04:00
Jose Diaz-Gonzalez
29e44260a0 docs: add links to migration guides
[ci skip]
2017-08-09 17:07:06 -04:00
Jose Diaz-Gonzalez
e2bebe078a Merge pull request #2863 from dokku/josegonzalez-patch-2
docs: fix syntax on getting started docs
2017-08-08 01:10:18 -04:00
Jose Diaz-Gonzalez
d025a00d18 docs: fix syntax on getting started docs
[ci skip]
2017-08-08 01:09:49 -04:00
Adel Qalieh
db0b2bc93e Use non-deprecated apps command 2017-08-04 14:48:07 -04:00
Cosmin Stroe
0b2bea3fa9 Use upstream port in nginx.conf template 2017-08-04 12:26:35 -05:00
Cosmin Stroe
9156dea8b7 Revert "Fix upstream ports configuration."
This reverts commit 1f93169c43.
2017-08-04 12:20:35 -05:00
Cosmin Stroe
1f93169c43 Fix upstream ports configuration. 2017-08-04 02:21:31 -05:00
Cosmin Stroe
65990068cb Revert "Use correct port number for the upstream."
This reverts commit 52b45d74cb.
2017-08-04 00:24:12 -05:00
Jose Diaz-Gonzalez
4008919a3c docs: use relative link for application deployment doc
[ci skip]
2017-08-04 00:54:51 -04:00
Cosmin Stroe
52b45d74cb Use correct port number for the upstream. 2017-08-03 22:24:14 -05:00
Jose Diaz-Gonzalez
ee27ea76a6 Merge pull request #2847 from plotly/add-ppa-before-apt
Add nginx ppa before installing Dokku
2017-07-30 14:09:52 -04:00
Josh Manders
a85159425b Merge branch 'master' into add-ppa-before-apt 2017-07-26 22:19:25 -05:00
Michael Hobbs
ab69be6665 Merge pull request #2850 from dokku/mh/chore/optional-docker-args-deploy
add optional PROC_TYPE and CONTAINER_INDEX to docker-args-deploy plugn trigger
2017-07-26 10:36:02 -07:00
Michael Hobbs
68ca119ae0 add syslog plugin 2017-07-26 10:35:41 -07:00
Michael Hobbs
a0e05eaef0 add optional PROC_TYPE and CONTAINER_INDEX to docker-args-deploy plugn trigger 2017-07-26 09:04:14 -07:00
Jody McIntyre
34d80a18dc Merge branch 'master' into add-ppa-before-apt 2017-07-24 11:46:53 -04:00
Jose Diaz-Gonzalez
1a38b5533d Merge pull request #2848 from dokku/fix_app_url_with_https
Ensure https applications return an https url from `dokku url`
2017-07-23 14:34:17 -06:00
Jose Diaz-Gonzalez
7df06fb2f6 fix: ensure tests pass 2017-07-22 15:17:40 -06:00
Domonkos Czinke
0efb690992 Fix URL error and add test 2017-07-22 15:15:54 -06:00
Domonkos Czinke
5af42dc678 url command should return https if it's configured 2017-07-22 15:15:54 -06:00
Jose Diaz-Gonzalez
2b929a98e7 Merge pull request #2839 from dokku/2771-dockerfile-cache
fix: skip clearing cache if we are not building a herokuish image
2017-07-22 15:07:35 -06:00
Josh Manders
9aa3721aa3 Merge branch 'master' into add-ppa-before-apt 2017-07-22 13:11:22 -05:00
Jose Diaz-Gonzalez
5ee257304a Merge pull request #2840 from dokku/2837-dyno-run-env-var
Add DYNO environment variable to run containers
2017-07-21 13:49:15 -06:00
Jody McIntyre
4497a54b12 Add nginx ppa before installing Dokku
Fixes #2845
2017-07-21 15:41:33 -04:00
Jose Diaz-Gonzalez
13ff7f7b96 feat: add DYNO environment variable to run containers. Closes #2837 2017-07-17 03:53:42 -06:00
Jose Diaz-Gonzalez
0147d55302 fix: skip clearing cache if we are not building a herokuish image
Closes #2771
2017-07-17 00:30:35 -06:00
Josh Manders
2169fb3859 Merge pull request #2836 from fishnux/patch-1
Added a note on documentation (issue #2835)
2017-07-13 10:37:35 -05:00
fishnux
8f9e23a59d Reworded some bits on installation.md 2017-07-13 12:24:32 +01:00
fishnux
9735f73c38 Clarified nginx installation issue 2017-07-13 12:20:35 +01:00
fishnux
a8d60e13e1 Added a note on documentation (issue #2835)
Added a small note that points to issue #2835, since some Linux distros appear to install an old nginx version by default
2017-07-12 23:00:20 +01:00
Jose Diaz-Gonzalez
b843716113 Merge pull request #2834 from iansu/patch-1
Update dockerfiles.md
2017-07-10 15:26:03 -06:00
Jose Diaz-Gonzalez
f442e6fabf docs: clarify port exposing
[ci skip]
2017-07-10 15:24:35 -06:00
Ian Sutherland
e8e6660b2a Update dockerfiles.md
Added a note about port ordering in Dockerfile.
2017-07-10 14:32:12 -06:00
Jose Diaz-Gonzalez
6dd4e61e04 Merge pull request #2824 from dokku/josegonzalez-patch-1
Upgrade herokuish to version 0.3.31
2017-07-09 14:28:21 -06:00
Jose Diaz-Gonzalez
98fa428386 Release 0.10.3
# History

## 0.10.3

### Bug Fixes

- #2832: @josegonzalez fix: use python2.7 binary instead of python2 binary
2017-07-09 14:12:16 -06:00
Jose Diaz-Gonzalez
a145333fbd Merge pull request #2832 from dokku/josegonzalez-python27
fix: use python2.7 binary instead of python2 binary
2017-07-09 14:11:32 -06:00
Jose Diaz-Gonzalez
72491257c3 fix: use python2.7 binary instead of python2 binary
On hosts where python3 is the system default python env and there is a minimal server installation, Dokku will silently fail to return the values of json keys.
2017-07-08 17:54:12 -06:00
Jose Diaz-Gonzalez
b009da2710 Release 0.10.2
# History

## 0.10.2

### New Features

- #2827: @josegonzalez feat: allow installation of openresty instead of nginx
2017-07-03 03:40:46 -06:00
Jose Diaz-Gonzalez
def60a510c Merge pull request #2827 from dokku/openresty-support
feat: allow installation of openresty instead of nginx
2017-07-03 03:39:41 -06:00
Jose Diaz-Gonzalez
4ac68cfbaa feat: allow installation of openresty instead of nginx 2017-07-03 03:39:23 -06:00
Jose Diaz-Gonzalez
433a35fac2 Release 0.10.1
# History

## 0.10.1

### Bug Fixes

- #2826: @josegonzalez Fix HISTORY.md generator
2017-07-03 03:09:12 -06:00
Jose Diaz-Gonzalez
6c9746c55e Merge pull request #2826 from dokku/fix-release-notes
Fix HISTORY.md generator
2017-07-03 03:08:55 -06:00
Jose Diaz-Gonzalez
efa99d02b2 fix: set history headers properly
[ci skip]
2017-07-03 03:07:22 -06:00
Jose Diaz-Gonzalez
5269975753 fix: correct headers on release notes 2017-07-03 03:07:02 -06:00
Jose Diaz-Gonzalez
0bdc6e443e feat: Upgrade herokuish to version 0.3.31 2017-07-02 23:21:27 -06:00
Jose Diaz-Gonzalez
b1ac7ac991 Release 0.10.0
# History

## 0.10.0

### Bug Fixes

- #2820: @josegonzalez Require netcat in debian packaging
- #2774: @fruitl00p Include docker-options in the default `dokku`
- #2778: @zarqman Fix /etc/logrotate.d/dokku on debian
- #2747: @ebeigarts Update herokuish base image on updates using --pull
- #2739: @josegonzalez Use listener_port in nginx.conf.sigil
- #2735: @josegonzalez Ensure we can call ps:report without specifying an application
- #2733: @josegonzalez Add support for new docker package names
- #2730: @weyert Ignore the cache directory when cloning an app
- #2723: @weyert Call non-deprecated plugin:list method

### New Features

- #2803: @iSDP Adding related articles on the Docker Image Deployment page
- #2798: @znz Update CURL_CONNECT_TIMEOUT in docs
- #2795: @josegonzalez docs: Add documentation around adding build-time configuration variables
- #2791: @yazinsai Correct typo in persistent storage docs
- #2789: @h4ckninja Subject-verb agreement
- #2790: @flyinggrizzly Add entry for insecure connection issue in Rails
- #2788: @josegonzalez Flesh out uninstallation documentation
- #2784: @josegonzalez Document special dokku environment variables
- #2773: @znz Update year in footer [ci skip]
- #2768: @znz Ubuntu 12.04 is EOL
- #2769: @lucianopf Fix SlackButton for mobile devices.
- #2763: @ZiadSalah Update vagrant documentation for windows users
- #2764: @joshmanders Create PULL_REQUEST_TEMPLATE.md
- #2758: @AxelTheGerman Update doc location for dokku-git-rev community plugin
- #2757: @nodanaonlyzuul Fix typo from "To use a dockerfiles" to "To use a dockerfile" singular
- #2753: @abrkn Use short-hand method for shutting down all applications in upgrade docs
- #2746: @josegonzalez Add redirect for installation to advanced install docs
- #2738: @josegonzalez Add missing `NO_SSL_SERVER_NAME` to example template
- #2457: @john-doherty Update Digitalocean installation instructions
- #2725: @timaschew Fix typo in application management docs
- #2719: @joshco Clarify that nginx.conf.sigil must be committed to repository
- #2715: @josegonzalez Use urls that are linkable on github

### Documentation

- #2822: @josegonzalez refactor: allow skipping cleanup on a per-application basis
- #2754: @fzerorubigd Add support for set DOKKU_IMAGE per app
- #2815: @markstory Add stickler-ci configuration.
- #2809: @oliw Remove aufs step from Makefile
- #2785: @josegonzalez Add a release-plugin binary
- #2777: @stokarenko Turn on ps-post-stop hook.
- #2781: @fruitl00p Adds docker.io support
- #2766: @josegonzalez Upgrade to herokuish 0.3.29
- #2765: @josegonzalez Install python3-software-properties as an alternative to python-software-properties
- #2642: @chiedo Added better default nginx error pages
- #2678: @callahad Default to secure PCI-compliant SSL setup
- #2734: @josegonzalez Allow quieter report output
2017-07-02 22:08:13 -06:00
Jose Diaz-Gonzalez
4f6e714a9d Merge pull request #2822 from dokku/refactor-cleanup
refactor: allow skipping cleanup on a per-application basis
2017-07-02 21:22:54 -06:00
Jose Diaz-Gonzalez
85f7f22520 fix: add missing space 2017-07-02 17:20:04 -06:00
Jose Diaz-Gonzalez
79f8c1581c refactor: allow skipping cleanup on a per-application basis
Also move all cleanup-related logic into docker_cleanup method
2017-07-02 16:54:26 -06:00
Jose Diaz-Gonzalez
191ae25f63 Merge pull request #2754 from fzerorubigd/fzerorubigd-patch-1
add support for set DOKKU_IMAGE per app
2017-07-02 16:11:58 -06:00
Jose Diaz-Gonzalez
484f3f8299 Merge pull request #2820 from dokku/josegonzalez-patch-1
fix: require netcat in debian packaging
2017-06-30 21:53:11 -06:00
Jose Diaz-Gonzalez
da748b1170 fix: require netcat in debian packaging
Closes #2818

[ci skip]
2017-06-30 21:52:55 -06:00
Jose Diaz-Gonzalez
5835dbd9a4 Merge pull request #2815 from markstory/add-stickler
Add stickler-ci configuration.
2017-06-28 15:31:46 -06:00
Mark Story
f49405d4cf Add stickler-ci configuration.
In talking with @josegonzalez, stickler-ci.com helps reduce the amount of
time maintainers spend reviewing code by automatically giving style
feedback as pull request comments.

I've added linters for shell scripts and go files based on the linting
I could find in the existing make files.
2017-06-28 00:12:09 -04:00
Jose Diaz-Gonzalez
e6103cc49b Merge pull request #2809 from oliw/oliverw/remove-aufs-2
Remove aufs step from Makefile
2017-06-20 15:52:17 -06:00
oli
40001b7287 Remove aufs step from Makefile in favor of aufs provisioning provided by
official docker install script
2017-06-19 21:42:40 -07:00
Jose Diaz-Gonzalez
0e08134a7c Merge pull request #2803 from iSDP/master
Adding related articles on the Docker Image Deployment page
2017-06-10 18:26:58 -04:00
Jose Diaz-Gonzalez
1c6eacd756 docs: re-add new sections
[ci skip]
2017-06-09 14:38:14 -04:00
Jose Diaz-Gonzalez
bec6c6bd66 docs: fix header
[ci skip]
2017-06-09 14:37:26 -04:00
Rémon S
f459745402 Update images.md
Fixing Menu <--> Title mismatch.
2017-06-09 20:20:28 +02:00
Rémon S
65ebd90903 Create images.md
Fixing a little styling error (forgot to add list)
2017-06-09 20:17:44 +02:00
Rémon S
ea30cd8cd2 Create images.md
Added some related articles to make the transition from Docker to Dokku easier to understand.
2017-06-09 20:17:12 +02:00
Jose Diaz-Gonzalez
e6a1a27516 Merge pull request #2798 from znz/update-example-of-timeout
Update CURL_CONNECT_TIMEOUT in docs
2017-06-06 09:25:55 -06:00
Kazuhiro NISHIYAMA
79fea59713 Update CURL_CONNECT_TIMEOUT in docs
Current default of CURL_CONNECT_TIMEOUT is 90.
So 30 is shorter than default.
[ci skip]
2017-06-07 00:18:02 +09:00
Jose Diaz-Gonzalez
e0b03aafe8 Merge pull request #2795 from dokku/josegonzalez-patch-1
docs: Add documentation around adding build-time configuration variables
2017-05-31 17:58:10 -06:00
Jose Diaz-Gonzalez
5b782c1ff4 docs: Add documentation around adding build-time configuration variables
Refs #2776
Closes #1860

[ci skip]
2017-05-31 17:57:47 -06:00
Jose Diaz-Gonzalez
fd0a6905dd Merge pull request #2791 from yazinsai/patch-1
fix typo
2017-05-30 12:01:42 -06:00
Yazin
1e18299364 fix typo 2017-05-30 13:38:27 +01:00
Jose Diaz-Gonzalez
b937f57a72 Merge pull request #2789 from h4ckninja/patch-1
Subject-verb agreement
2017-05-29 15:07:55 -06:00
Jose Diaz-Gonzalez
3fe65fd3fb Merge pull request #2790 from flyinggrizzly/patch-1
Add entry for insecure connection issue in Rails
2017-05-29 14:49:06 -06:00
flyinggrizzly
460af1885a Update troubleshooting.md 2017-05-29 19:42:07 +01:00
flyinggrizzly
370e656209 Add entry for insecure connection issue in Rails
If an application is configured to enforce secure connections and SSL isn't configured for Dokku or the application, browsers will raise an Invalid Connection error.

Entry describes issue, a code resolution for Rails, and points users to the SSL docs.
2017-05-29 17:33:23 +01:00
h4ck ninja
337bc9d10e Subject-verb agreement 2017-05-28 19:00:48 -07:00
Jose Diaz-Gonzalez
8fa40b7a70 Merge pull request #2788 from dokku/josegonzalez-patch-1
docs: Flesh out uninstallation documentation
2017-05-25 22:36:06 -06:00
Jose Diaz-Gonzalez
af71b1b4b3 chore: remove extra whitespace
[ci skip]
2017-05-25 22:35:52 -06:00
Jose Diaz-Gonzalez
4f60297630 docs: link to uninstalling documenation 2017-05-25 22:35:19 -06:00
Jose Diaz-Gonzalez
11aa78a5f9 docs: Flesh out uninstallation documentation
[ci skip]
2017-05-25 22:34:10 -06:00
Jose Diaz-Gonzalez
f4be4ad28d Merge pull request #2785 from dokku/contrib-release-plugin
feat: add a release-plugin bin
2017-05-23 02:37:05 -06:00
Jose Diaz-Gonzalez
cd4ebf5ffc feat: add a release-plugin bin
This binary will allow users to easily script releasing plugins, including uploading private plugins to S3.

[ci skip]
2017-05-23 02:36:16 -06:00
Jose Diaz-Gonzalez
584d4a4619 Merge pull request #2784 from dokku/document-env-vars
Document special dokku environment variables
2017-05-23 01:53:12 -06:00
Jose Diaz-Gonzalez
5061f1e2c8 feat: document special dokku environment variables
This adds a table of environment variables that Dokku will use to change internal behavior.

Not all are fully documented/listed, but this should be enough to get people hacking.

[ci skip]
2017-05-23 01:52:38 -06:00
Jose Diaz-Gonzalez
8602fa9e01 Merge pull request #2774 from fruitl00p/docker-options-help
include docker-options in the default `dokku`
2017-05-22 10:21:14 -06:00
Jose Diaz-Gonzalez
ea10d23133 Merge pull request #2777 from stokarenko/turn-on-ps-post-stop
Turn on ps-post-stop hook.
2017-05-22 10:20:37 -06:00
Jose Diaz-Gonzalez
3d9714446a Merge pull request #2781 from fruitl00p/patch-5
Adds docker.io support
2017-05-19 11:03:06 -04:00
Jose Diaz-Gonzalez
ee14acf735 fix: update min docker-io package
[ci skip]
2017-05-19 11:02:56 -04:00
Robin Speekenbrink
7d9f133824 Adds docker.io support
This (small) PR adds the docker-io package from Ubuntu Xenial as supported docker version

fixes #2775
2017-05-19 16:49:56 +02:00
Jose Diaz-Gonzalez
07f6a26c3e Merge pull request #2778 from zarqman/fix-logrotate
fix /etc/logrotate.d/dokku on debian
2017-05-18 15:23:23 -04:00
thomas morgan
653d6ca1eb fix logrotate config on debian 2017-05-18 13:11:30 -06:00
Sergey Tokarenko
e1263bf55c Turn on ps-post-stop hook. 2017-05-17 20:39:56 +03:00
Robin Speekenbrink
ac96217ac3 aligned docker-options into the default 'dokku' listing of plugins
This PR should list the default enabled docker-options plugin in the help listing. This should ease the `discovery` of the plugin.
2017-05-16 09:26:48 +02:00
Jose Diaz-Gonzalez
d747e146a6 Merge pull request #2773 from znz/update-copyright-year
Update year in footer [ci skip]
2017-05-15 14:50:07 -04:00
Kazuhiro NISHIYAMA
58512b2dea Update year in footer [ci skip] 2017-05-15 21:46:04 +09:00
Jose Diaz-Gonzalez
3d24f376ec Merge pull request #2768 from znz/ubuntu-12.04-is-eol
Ubuntu 12.04 is EOL
2017-05-12 10:11:38 -06:00
Jose Diaz-Gonzalez
954a5dba0b Merge pull request #2769 from lucianopf/master
Fix SlackButton for mobile devices.
2017-05-12 09:59:46 -06:00
Luciano Pellacani Franca
e7e44d431a [ci skip] skip CI
[ci skip] skip CI
2017-05-12 08:04:35 -04:00
Luciano Pellacani Franca
9865908163 Fix SlackButton size with screen lower than 768px
Fix SlackButton size with screen lower than 768px
2017-05-12 08:00:57 -04:00
Kazuhiro NISHIYAMA
ff99cfe3f7 Ubuntu 12.04 is EOL
and not listed in Requirements of README.md.
[ci skip]
2017-05-12 18:09:57 +09:00
Jose Diaz-Gonzalez
944d2c6ac4 Merge pull request #2766 from dokku/2761-herokuish-upgrade
feat: upgrade to herokuish 0.3.29
2017-05-11 09:03:40 -06:00
Jose Diaz-Gonzalez
3b28f0103f feat: upgrade to herokuish 0.3.29
Closes #2761
2017-05-10 23:31:42 -06:00
Jose Diaz-Gonzalez
5d72c7f714 Merge pull request #2765 from dokku/2762-debian-stretch-support
fix: Install python3-software-properties as an alternative to python-software-properties
2017-05-10 23:20:13 -06:00
Jose Diaz-Gonzalez
92c8ca50d1 fix: Install python3-software-properties as an alternative to python-software-properties
Closes #2762

[ci skip]
2017-05-10 23:19:48 -06:00
Jose Diaz-Gonzalez
fb918af050 Merge pull request #2763 from ZiadSalah/Vagrant-Windows-Instructions-Patch
Update vagrant.md
2017-05-10 16:24:55 -06:00
Jose Diaz-Gonzalez
ff536c58df docs: move the messaging into the docblock
[ci skip]
2017-05-10 16:24:44 -06:00
Jose Diaz-Gonzalez
9ff3ae9860 Merge pull request #2764 from joshmanders/patch-1
Create PULL_REQUEST_TEMPLATE.md
2017-05-10 16:18:57 -06:00
Josh Manders
75fe75f7a9 Create PULL_REQUEST_TEMPLATE.md
Puts note about [ci skip] so that CI doesn't trigger when making PR's about docs.
2017-05-10 17:15:50 -05:00
ZiadSalah
79bfd0fd12 Update vagrant.md
Included instructions to run vagrant up dokku-windows if on a windows host
2017-05-10 22:53:10 +01:00
Jose Diaz-Gonzalez
41bbf0a62b Merge pull request #2758 from AxelTheGerman/patch-1
dokku-git-rev has moved to dokku-community
2017-05-08 22:32:27 -06:00
Axel Gustav
6f1206e8a9 dokku-git-rev has moved to dokku-community 2017-05-08 21:28:17 -07:00
Jose Diaz-Gonzalez
74ca540c18 Merge pull request #2757 from nodanaonlyzuul/adjust-small-typo-in-docker-section
Fix typo from "To use a dockerfiles" to "To use a dockerfile" singular
2017-05-08 14:33:10 -06:00
nodanaonlyzuul
36fb3aef22 Fix typo from "To use a dockerfiles" to "To use a dockerfile" singular 2017-05-08 16:23:30 -04:00
Jose Diaz-Gonzalez
694ae52d64 Merge pull request #2753 from abrkn/patch-1
Use short-hand method for shutting down all applications in upgrade docs
2017-05-01 23:39:33 -06:00
Jose Diaz-Gonzalez
ed48542fd8 fix: quote variables 2017-05-01 23:20:28 -06:00
fzerorubigd
4ab147a8a5 add support for set DOKKU_IMAGE per app
fixes #2745
2017-05-02 09:21:58 +04:30
Jose Diaz-Gonzalez
9d57baf5a9 docs: use --quiet flag
[ci skip]
2017-05-01 22:28:30 -06:00
Andreas Brekken
a5b1412d43 Update upgrading.md
Add short-hand method for shutting down all apps. Useful for users with large number of apps.
2017-05-02 11:25:08 +07:00
Jose Diaz-Gonzalez
6e16a1b76a Merge pull request #2747 from ebeigarts/update-herokuish-base-image
Update herokuish base image on updates using --pull
2017-04-27 15:36:58 -06:00
Edgars Beigarts
d468572bf7 Update herokuish base image on updates using --pull
Herokuish update fails if existing herokuish is used by other containers,
using docker build --pull will force to update also the base image.

Setting up herokuish (0.3.28) ...
Removing old herokuish image
Failed to remove image (gliderlabs/herokuish): Error response from daemon: conflict: unable to remove repository reference "gliderlabs/herokuish" (must force) - container dbf2298ab5a5 is using its referenced image 7d4a8d661476
Importing herokuish into docker (around 5 minutes)
2017-04-27 12:39:12 +03:00
Jose Diaz-Gonzalez
cc08da9600 Merge pull request #2746 from dokku/josegonzalez-patch-1
docs: add redirect for installation to advanced install docs
2017-04-26 17:39:36 -06:00
Jose Diaz-Gonzalez
f9f333ca0a docs: add redirect for installation to advanced install docs
[ci skip]
2017-04-26 17:39:11 -06:00
Jose Diaz-Gonzalez
02aca5aac5 Merge pull request #2739 from dokku/2676-listener-port
Use listener_port in nginx.conf.sigil
2017-04-24 09:31:37 -06:00
Jose Diaz-Gonzalez
e719da300f Merge pull request #2642 from chiedo/error-pages
Added better default nginx error pages
2017-04-22 20:27:41 -06:00
Jose Diaz-Gonzalez
a7b929a80e Update 400-error.html
Base it more closely on the rails application error page
2017-04-22 15:44:24 -06:00
Jose Diaz-Gonzalez
c05ceb0aff Update 500-error.html 2017-04-22 15:42:25 -06:00
Jose Diaz-Gonzalez
4194702442 Update 404-error.html
Base it more closely on the rails application error page
2017-04-22 15:42:06 -06:00
Jose Diaz-Gonzalez
04dda5e347 Update 500-error.html
Base it more closely on the rails application error page
2017-04-22 15:40:26 -06:00
Jose Diaz-Gonzalez
cde90620b0 docs: Use listener_port in nginx.conf.sigil example
Refs #2676
2017-04-22 15:18:20 -06:00
Jose Diaz-Gonzalez
dea195df26 fix: Use listener_port in nginx.conf.sigil
Closes #2676
2017-04-22 15:17:15 -06:00
Jose Diaz-Gonzalez
6a441d8ed5 Merge pull request #2738 from dokku/2714-nossl-server-name
Add missing `NO_SSL_SERVER_NAME` to example template
2017-04-22 14:56:26 -06:00
Jose Diaz-Gonzalez
7c6c8feb95 docs: add missing NO_SSL_SERVER_NAME to example template
Also add a link to the default `nginx.conf.sigil`.

[ci skip]
2017-04-22 14:56:09 -06:00
Jose Diaz-Gonzalez
18957dcf39 Merge pull request #2678 from callahad/modern-tls
Update the default cipher suite
2017-04-22 14:42:19 -06:00
Jose Diaz-Gonzalez
7d825f8be0 Merge pull request #2735 from dokku/2721-global-ps-report
Ensure we can call ps:report without specifying an application
2017-04-21 15:15:06 -06:00
Jose Diaz-Gonzalez
518757c47d Merge pull request #2733 from dokku/jg-2732-rpm-docker
fix: use or statements to add support for new docker packages
2017-04-21 15:14:46 -06:00
Jose Diaz-Gonzalez
593f7d42d8 feat: allow any version of docker-ee and docker-ce
[ci skip]
2017-04-21 14:27:24 -06:00
Jose Diaz-Gonzalez
39c117a3cc fix: update herokuish dependency for docker
[ci skip]
2017-04-21 14:26:14 -06:00
Jose Diaz-Gonzalez
4700104303 Merge pull request #2734 from dokku/quiet-report-output
Allow quieter report output
2017-04-21 10:33:17 -06:00
Jose Diaz-Gonzalez
bc4b9dc5f3 fix: only require the docker bin
Docker has this thing where they rebrand the debian package name once a year, and as YUM doesn't resolve anything like a "Provides" field, this is the best we can do (unless they all required the same metapackage).

Note that now we can't ensure a specific minor docker version via RPM, though I feel as though if you choose a crappy OS/package manager and we fail you, thats on you, not Dokku.

Closes #2732
2017-04-21 10:26:24 -06:00
Jose Diaz-Gonzalez
6d21ab20bd fix: minor stylistic change 2017-04-21 10:22:20 -06:00
Jose Diaz-Gonzalez
dea1c86a9b fix: Ensure we can call ps:report without specifying an application
Closes #2721
2017-04-21 00:58:08 -06:00
Jose Diaz-Gonzalez
15021d05c9 feat: allow quieter report output
Users should have the option of suppressing headers, which are not always useful when interacting with dokku in a programmatic fashion.
2017-04-21 00:53:35 -06:00
Jose Diaz-Gonzalez
4639f3c930 fix: use or statements to add support for new docker packages
Closes #2732
[ci skip]
2017-04-20 21:38:25 -06:00
Jose Diaz-Gonzalez
42860dd2a9 feat: require nginx 1.8.0+
[ci skip]
2017-04-20 21:35:29 -06:00
Jose Diaz-Gonzalez
df6ac90812 Merge pull request #2457 from john-doherty/patch-1
Added "Dokku setup using a Mac" steps
2017-04-20 21:08:04 -06:00
Jose Diaz-Gonzalez
53fbaec1fa Merge branch 'master' into patch-1 2017-04-20 21:07:54 -06:00
Jose Diaz-Gonzalez
2f819d1d1c docs: remove header
Also use the account associated with Dokku for referrals.

[ci skip]
2017-04-20 21:06:43 -06:00
Jose Diaz-Gonzalez
c74bd93c58 docs: Respond to comments in digitalocean docs
[ci skip]
2017-04-20 21:04:40 -06:00
Jose Diaz-Gonzalez
9f9ecca59c feat: support nginx 1.8.0 and up 2017-04-20 20:22:11 -06:00
Jose Diaz-Gonzalez
9e021f889f fix: disable ssl tickets
This makes Perfect Forward Secrecy useless.
2017-04-20 20:17:43 -06:00
Jose Diaz-Gonzalez
1c5896c3e3 fix: be pci compliant by default
Developers can override this in a custom nginx.conf.sigil.

While it may be backwards incompatible - and will therefore require a minor release - it does make things much more secure.
2017-04-20 20:15:38 -06:00
Jose Diaz-Gonzalez
4abad29b3a feat: set prefer_server_ciphers to on by default
[ci skip]
2017-04-20 20:14:10 -06:00
Jose Diaz-Gonzalez
3fab901097 fix: drop duplicate config values
[ci skip]
2017-04-20 20:13:44 -06:00
Jose Diaz-Gonzalez
6e0adaead0 Merge pull request #2730 from weyert/bugfix/2711
Fix ticket #2711
2017-04-20 15:19:37 -06:00
Jose Diaz-Gonzalez
55afe3a760 fix: quiet pushd and popd 2017-04-19 13:48:15 -06:00
Weyert de Boer
a61f7f44d6 Merge branch 'master' into bugfix/2711 2017-04-19 03:26:35 +01:00
Weyert de Boer
f0e0e20496 Use pushd and popd instead of cd 2017-04-19 03:26:00 +01:00
Weyert de Boer
3e4f91a78d Attempt to fix the clone command 2017-04-19 03:00:09 +01:00
Josh Manders
fb68a6f4b6 Merge pull request #2725 from timaschew/patch-1
docs: minor typo fix
2017-04-18 09:46:58 -05:00
Anton Wilhelm
5a611b73d0 minor typo fix 2017-04-18 11:28:09 +02:00
Jose Diaz-Gonzalez
7e36d74959 Merge pull request #2723 from weyert/bugfix/2722
Call non-deprecated plugin:list method
2017-04-17 11:01:07 -06:00
Weyert de Boer
442d2cc414 Ensure the plugin listing command is not the deprecated one but the new plugin:list one instead 2017-04-17 16:22:23 +01:00
Jose Diaz-Gonzalez
8cac7ee63f Merge pull request #2719 from joshco/master
clarify requirement to be checked into repo for buildpack apps
2017-04-17 00:38:45 -06:00
Josh
ab29554f3f clarify requirement to be checked into repo for buildpack apps 2017-04-16 12:26:37 -04:00
Jose Diaz-Gonzalez
2803c39fb5 Merge pull request #2715 from dokku/github-usable-docs
Use urls that are linkable on github
2017-04-13 23:24:34 -06:00
Jose Diaz-Gonzalez
0ba9393285 docs: use urls that are linkable on github 2017-04-13 23:09:46 -06:00
Jose Diaz-Gonzalez
6cb8b108db Release 0.9.4
# History

## 0.9.4

### Documentation

- #2710: @josegonzalez Quiet output for git-related commands
2017-04-10 18:36:04 -06:00
Jose Diaz-Gonzalez
9aef43d5a0 Merge pull request #2710 from dokku/quiet-git
Quiet output for git-related commands
2017-04-10 18:35:25 -06:00
Jose Diaz-Gonzalez
8dadc4cf50 fix: de-dent post-extract output 2017-04-10 17:12:46 -06:00
Jose Diaz-Gonzalez
45518fce6c fix: ensure git check-ref-format runs quietly 2017-04-10 17:12:32 -06:00
Jose Diaz-Gonzalez
b21f4b6470 Release 0.9.3
# History

## 0.9.3

### Bug Fixes

- #2706: @josegonzalez fix: ensure nginx conf.d directory exists when running nginx install hook
- #2701: @scjody Set SSH_USER for root commands

### New Features

- #2708: @josegonzalez Document that we will not do buildpack support in the issue tracker

### Documentation

- #2709: @michaelshobbs increase CURL_TIMEOUT and CURL_CONNECT_TIMEOUT defaults
- #2699: @mbreit Add support for git >= 2.11
2017-04-10 13:40:53 -06:00
Jose Diaz-Gonzalez
c52f60f9d7 Merge pull request #2709 from dokku/mh/fix/default-curl-timeouts
increase CURL_TIMEOUT and CURL_CONNECT_TIMEOUT defaults
2017-04-10 13:39:42 -06:00
Jose Diaz-Gonzalez
c815d732eb Merge pull request #2706 from dokku/2686-missing-nginx-dir
fix: ensure nginx conf.d directory exists when running nginx install hook
2017-04-10 12:48:25 -06:00
Michael Hobbs
18849c085a increase CURL_TIMEOUT and CURL_CONNECT_TIMEOUT defaults. fixes #2668 2017-04-10 11:34:09 -07:00
Jose Diaz-Gonzalez
cb62958095 Merge pull request #2708 from dokku/josegonzalez-patch-1
Document that we will not do buildpack support in the issue tracker
2017-04-10 07:46:49 -06:00
Jose Diaz-Gonzalez
4fcfad5df5 docs: Document that we will not do buildpack support in the issue tracker
[ci skip]
2017-04-10 07:46:23 -06:00
Jose Diaz-Gonzalez
5101096518 fix: ensure nginx conf.d directory exists when running nginx install hook
Closes #2686
2017-04-10 00:37:23 -06:00
Jose Diaz-Gonzalez
afef3b94d5 Merge pull request #2701 from plotly/set-ssh-user-for-root
Set SSH_USER for root commands
2017-04-10 00:28:50 -06:00
Jody McIntyre
73a84f90c5 Set SSH_USER for root commands
Previously, SSH_USER was not set for plugin:* or ssh-keys:add, which
contradicts the user-auth trigger documentation.

Fixes #2700
2017-04-07 12:46:09 -04:00
Jose Diaz-Gonzalez
918bc9efe8 Merge pull request #2699 from mbreit/git-worktree
Use git worktree in git_build_app_repo() for git >= 2.11
2017-04-05 11:03:10 -04:00
Moritz Breit
98619733b2 Use git worktree in git_build_app_repo() for git >= 2.11
Git 2.11.0 breaks the git clone approach in git_build_app_repo() in
25ab004c53

git worktree is a much simpler approach but only works for git >= 2.5
so it is not available in Ubuntu 14.04.

Fixes #2512.
2017-04-05 11:45:41 +02:00
Dan Callahan
071e746c45 Update the default cipher suite
This is the Modern preset from:
https://mozilla.github.io/server-side-tls/ssl-config-generator/
2017-03-23 15:11:57 -05:00
Chiedo
12b44c865b Exposed function to nginx template 2017-03-08 07:49:21 -05:00
Chiedo
58c2ad8e4b Attempt to fix plugin path 2017-03-07 16:10:46 -05:00
Chiedo
4c354bdcd6 lol 2017-03-07 15:53:16 -05:00
Chiedo
22f670d999 Fixed variable syntax in install script 2017-03-07 14:50:14 -05:00
Chiedo
e5f3dcaaef Quoted Variable usage 2017-03-07 14:38:19 -05:00
Chiedo
3f4b1e69c7 Requested improvements
- Moved the template files
- Replaced . with $PWD
- Made more descriptive errors in the templates
2017-03-07 14:28:38 -05:00
Chiedo
fa286caca2 Switched to templated error pages 2017-03-07 09:14:24 -05:00
Chiedo
3b78e65b2b Added better default nginx error pages 2017-03-06 15:05:58 -05:00
John Doherty
62b5ca20df Added "Dokku setup using a Mac" steps
It would be great to add additional blocks for Windows and Linux
2016-10-11 00:33:01 +01:00
278 changed files with 9093 additions and 1081 deletions

28
.circleci/config.yml Normal file
View File

@@ -0,0 +1,28 @@
version: 2
jobs:
build:
machine: true
parallelism: 4
steps:
- checkout
- run: |
make ci-dependencies
- run: |
./tests/ci/setup.sh
- run: |
echo 'export DOKKU_SKIP_CLEANUP=true' | sudo tee /home/dokku/.dokkurc/dokku_skip_cleanup
- run: |
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to eth0
sudo ip a a 10.0.0.2/24 broadcast 10.0.0.255 dev eth0
- run: |
case $CIRCLE_NODE_INDEX in
0) sudo -E make -e lint ;;
1) sudo -E make -e go-tests ci-go-coverage;;
2) sudo -E make -e deploy-test-checks-root deploy-test-config deploy-test-multi deploy-test-go-fail-predeploy deploy-test-go-fail-postdeploy ;;
esac
- run:
shell: /bin/bash
command: sudo -E make -e test-ci
no_output_timeout: 60m
- store_artifacts:
path: ./coverage.out

5
.codacy.yml Normal file
View File

@@ -0,0 +1,5 @@
exclude_paths:
- vendor/**/*
- tests/**/*
- "**_test.go"
- contrib/*

View File

@@ -17,5 +17,5 @@ indent_size = 4
[*.go]
insert_final_newline = true
indent_style = space
indent_style = tab
indent_size = 4

2
.gitignore vendored
View File

@@ -2,7 +2,9 @@
*.rpm
.DS_Store
.ruby-version
.idea/
.vagrant
data/
stack.tgz
tmp
coverage.out

10
.stickler.yml Normal file
View File

@@ -0,0 +1,10 @@
linters:
shellcheck:
shell: bash
exclude: SC2034
golint:
files:
ignore:
- './debian/*'
- '*/vendor/*'

View File

@@ -1,5 +1,218 @@
# History
## 0.11.2
### Bug Fixes
- #3014: @josegonzalez fix: handle case where DOKKU_DOCKERFILE_PORTS is an empty string
- #3013: @alexquick Fix some issues with config/network/repo help output
- #3012: @alexquick Fail when setting/unsetting invalid keys
- #3011: @alexquick Forward output from plugn triggers to user
- #3004: @josegonzalez Return/Exit 1 when an image being deployed is invalid
### Documentation
- #3015: @elia Tiny fixes to triggers documentation
## 0.11.1
### Bug Fixes
- #3010: @josegonzalez fix: route config_all to the `config` command to fix datastore plugin usage
- #3009: @josegonzalez fix: correct the guard around the config_export call in config_sub
- #3006: @josegonzalez fix: do not allow shadowing of the CACHE_DIR variable
- #3005: @josegonzalez fix: persist users in the dokku group through installations
- #3003: @josegonzalez Fix issues in apps:clone calls
- #3001: @josegonzalez fix: allow applications to begin with numeric values
### New Features
- #3002: @josegonzalez fix: omit redirection of docker build output
- #3000: @josegonzalez fix: remove golang files and triggers directory for packaging
## 0.11.0
### Bug Fixes
- #2998: @josegonzalez Fix issues in release process
- #2993: @josegonzalez Add config_all alias for plugin usage
- #2972: @buckle2000 Correct typo in docker-options:remove error output
- #2964: @znz Remove unused variable
- #2967: @znz Fix indentation in test file
- #2963: @znz Correct typos in config plugin and remove potential infinite recursion issue
- #2951: @josegonzalez Handle case where the app directory is a symlink
- #2939: @znz Remove unnecessary lines
- #2945: @znz Fix network plugin version
- #2937: @michaelshobbs Strip restart flag from app_user_pre_deploy_trigger
- #2931: @josegonzalez Upgrade git package for CI
- #2928: @silverfix Do not overwrite the VHOST file during installation if it exists
- #2926: @vtavernier Remove leading forward slash from app name in git-upload-pack
### New Features
- #2985: @bitmand Build a custom dhparam file once for nginx and include it as default
- #2974: @josegonzalez Upgrade to herokuish 0.3.33
- #2973: @josegonzalez Allow usage of git 2.13.0+ by unsetting GIT_QUARANTINE_PATH during git worktree usage
- #2971: @miraculixx Add support for older virtualbox versions in official Dokku Vagrantfile
- #2966: @znz Simplify internal config functions to reduce duplication
- #2751: @alexquick Move config plugin to golang
- #2938: @michaelshobbs Upgrade to golang 1.9.1
- #2736: @josegonzalez Implement Network Plugin
- #2929: @michaelshobbs Add codacy config and coverage targets
### Documentation
- #2935: @jcrben Document how to make herokuish optional during the bootstrap installation
- #2982: @agorf Correct typo in user management docs
- #2981: @agorf Correct typos in process management docs
- #2969: @znz Correct comments on network triggers
- #2965: @znz Remove spaces from config subcommand help output to mirror help output of other subcommands
- #2954: @mrname Add vernemq community datastore plugin to docs
- #2944: @axilleas Fix syntax typo in debian installation docs
- #2932: @znz Update code comment to match documentation
- #2933: @znz Fix version number for network binding documentation
## 0.10.5
### Bug Fixes
- #2912: @josegonzalez Add missing depends statement for rsyslog
- #2906: @manuel-colmenero Check the location of nginx in a central way
- #2895: @josegonzalez cd to app directory when calling git worktree add
### Documentation
- #2922: @axilleas Clarify the minimum Nginx version for HTTP/2 support
- #2919: @wootwoot1234 Update nginx documentation surrounding file uploading for php buildpack users
- #2913: @znz Fix a typo in the rpm release script
- #2910: @buckle2000 Add a note about using the full git url for non-compliant toolchains
## 0.10.4
### Bug Fixes
- #2894: @josegonzalez fix: bail if any step in the release process fails
- #2880: @josegonzalez fix: properly detect empty subcommands
- #2881: @josegonzalez Verify app name on git push
- #2858: @cstroe Use correct port number for the upstream.
- #2848: @josegonzalez Ensure https applications return an https url from `dokku url`
- #2839: @josegonzalez fix: skip clearing cache if we are not building a herokuish image
### New Features
- #2890: @michaelshobbs use circleci 2.0
- #2847: @scjody Add nginx ppa before installing Dokku
- #2850: @michaelshobbs add optional PROC_TYPE and CONTAINER_INDEX to docker-args-deploy plugn trigger
- #2840: @josegonzalez Add DYNO environment variable to run containers
- #2824: @josegonzalez Upgrade herokuish to version 0.3.31
### Documentation
- #2861: @adelq Use non-deprecated apps command
- #2878: @m0rth1um Add telegram notifications plugin
- #2876: @josegonzalez docs: clarify storage documentation caveats
- #2873: @josegonzalez docs: add a note on which docs to look at for customizing nginx docs
- #2867: @josegonzalez docs: cleanup help output for dokku shell
- #2859: @josegonzalez docs: use relative link for application deployment doc
- #2866: @josegonzalez Add missing migration guides
- #2863: @josegonzalez docs: fix syntax on getting started docs
- #2836: @fishnux Add a note regarding nginx dependency to installation docs
- #2834: @iansu Clarify port exposure in Dockerfile documentation
## 0.10.3
### Bug Fixes
- #2832: @josegonzalez fix: use python2.7 binary instead of python2 binary
## 0.10.2
### New Features
- #2827: @josegonzalez feat: allow installation of openresty instead of nginx
## 0.10.1
### Bug Fixes
- #2826: @josegonzalez Fix HISTORY.md generator
## 0.10.0
### Bug Fixes
- #2820: @josegonzalez Require netcat in debian packaging
- #2774: @fruitl00p Include docker-options in the default `dokku`
- #2778: @zarqman Fix /etc/logrotate.d/dokku on debian
- #2747: @ebeigarts Update herokuish base image on updates using --pull
- #2739: @josegonzalez Use listener_port in nginx.conf.sigil
- #2735: @josegonzalez Ensure we can call ps:report without specifying an application
- #2733: @josegonzalez Add support for new docker package names
- #2730: @weyert Ignore the cache directory when cloning an app
- #2723: @weyert Call non-deprecated plugin:list method
### New Features
- #2822: @josegonzalez refactor: allow skipping cleanup on a per-application basis
- #2754: @fzerorubigd Add support for set DOKKU_IMAGE per app
- #2815: @markstory Add stickler-ci configuration.
- #2809: @oliw Remove aufs step from Makefile
- #2785: @josegonzalez Add a release-plugin binary
- #2777: @stokarenko Turn on ps-post-stop hook.
- #2781: @fruitl00p Adds docker.io support
- #2766: @josegonzalez Upgrade to herokuish 0.3.29
- #2765: @josegonzalez Install python3-software-properties as an alternative to python-software-properties
- #2642: @chiedo Added better default nginx error pages
- #2678: @callahad Default to secure PCI-compliant SSL setup
- #2734: @josegonzalez Allow quieter report output
### Documentation
- #2803: @iSDP Adding related articles on the Docker Image Deployment page
- #2798: @znz Update CURL_CONNECT_TIMEOUT in docs
- #2795: @josegonzalez docs: Add documentation around adding build-time configuration variables
- #2791: @yazinsai Correct typo in persistent storage docs
- #2789: @h4ckninja Subject-verb agreement
- #2790: @flyinggrizzly Add entry for insecure connection issue in Rails
- #2788: @josegonzalez Flesh out uninstallation documentation
- #2784: @josegonzalez Document special dokku environment variables
- #2773: @znz Update year in footer [ci skip]
- #2768: @znz Ubuntu 12.04 is EOL
- #2769: @lucianopf Fix SlackButton for mobile devices.
- #2763: @ZiadSalah Update vagrant documentation for windows users
- #2764: @joshmanders Create PULL_REQUEST_TEMPLATE.md
- #2758: @AxelTheGerman Update doc location for dokku-git-rev community plugin
- #2757: @nodanaonlyzuul Fix typo from "To use a dockerfiles" to "To use a dockerfile" singular
- #2753: @abrkn Use short-hand method for shutting down all applications in upgrade docs
- #2746: @josegonzalez Add redirect for installation to advanced install docs
- #2738: @josegonzalez Add missing `NO_SSL_SERVER_NAME` to example template
- #2457: @john-doherty Update Digitalocean installation instructions
- #2725: @timaschew Fix typo in application management docs
- #2719: @joshco Clarify that nginx.conf.sigil must be committed to repository
- #2715: @josegonzalez Use urls that are linkable on github
## 0.9.4
### Documentation
- #2710: @josegonzalez Quiet output for git-related commands
## 0.9.3
### Bug Fixes
- #2706: @josegonzalez fix: ensure nginx conf.d directory exists when running nginx install hook
- #2701: @scjody Set SSH_USER for root commands
### New Features
- #2708: @josegonzalez Document that we will not do buildpack support in the issue tracker
### Documentation
- #2709: @michaelshobbs increase CURL_TIMEOUT and CURL_CONNECT_TIMEOUT defaults
- #2699: @mbreit Add support for git >= 2.11
## 0.9.2
### New Features

View File

@@ -1,3 +1,5 @@
> If you need help figuring out how to use a specific buildpack, or are having issues using multiple buildpacks, please see our [irc or slack channels](http://dokku.viewdocs.io/dokku/getting-started/where-to-get-help/#the-irc-and-slack-channels). Issues pertaining to buildpacks may be closed and locked.
Description of problem:

View File

@@ -1,6 +1,6 @@
DOKKU_VERSION ?= master
SSHCOMMAND_URL ?= https://raw.githubusercontent.com/dokku/sshcommand/v0.6.0/sshcommand
SSHCOMMAND_URL ?= https://raw.githubusercontent.com/dokku/sshcommand/v0.7.0/sshcommand
PLUGN_URL ?= https://github.com/dokku/plugn/releases/download/v0.3.0/plugn_0.3.0_linux_x86_64.tgz
SIGIL_URL ?= https://github.com/gliderlabs/sigil/releases/download/v0.4.0/sigil_0.4.0_Linux_x86_64.tgz
STACK_URL ?= https://github.com/gliderlabs/herokuish.git
@@ -116,7 +116,7 @@ dependencies: apt-update sshcommand plugn docker help2man man-db sigil
$(MAKE) -e stack
apt-update:
apt-get update
apt-get update -qq
help2man:
apt-get install -qq -y help2man
@@ -137,7 +137,7 @@ sigil:
wget -qO /tmp/sigil_latest.tgz ${SIGIL_URL}
tar xzf /tmp/sigil_latest.tgz -C /usr/local/bin
docker: aufs
docker:
apt-get install -qq -y curl
egrep -i "^docker" /etc/group || groupadd docker
usermod -aG docker dokku
@@ -149,11 +149,6 @@ endif
sleep 2 # give docker a moment i guess
endif
aufs:
ifndef CI
lsmod | grep aufs || modprobe aufs || apt-get install -qq -y linux-image-extra-`uname -r` > /dev/null
endif
stack:
ifeq ($(shell test -e /var/run/docker.sock && touch -c /var/run/docker.sock && echo $$?),0)
ifdef BUILD_STACK

1
PULL_REQUEST_TEMPLATE.md Normal file
View File

@@ -0,0 +1 @@
**Note:** If this PR is just doc changes, please put [ci skip] in the body that way tests do not run.

View File

@@ -99,8 +99,8 @@ A fresh VM running any of the following operating systems:
To install the latest stable release, run the following commands as a user who has access to `sudo`:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.9.2/bootstrap.sh
sudo DOKKU_TAG=v0.9.2 bash bootstrap.sh
wget https://raw.githubusercontent.com/dokku/dokku/v0.11.2/bootstrap.sh
sudo DOKKU_TAG=v0.11.2 bash bootstrap.sh
```
You can then proceed to the ip address or domain name associated with your server to complete the web-based installation.

2
Vagrantfile vendored
View File

@@ -45,6 +45,8 @@ Vagrant::configure("2") do |config|
vm.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "off"]
# enable NAT adapter cable https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838999
vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
end
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git > /dev/null && cd /root/dokku && #{make_cmd}"

View File

@@ -33,9 +33,6 @@ install-requirements() {
case "$DOKKU_DISTRO" in
debian|ubuntu)
apt-get update -qq > /dev/null
if [[ "$DOKKU_DISTRO_VERSION" == "12.04" ]]; then
apt-get -qq -y install python-software-properties
fi
;;
esac
}
@@ -125,6 +122,11 @@ install-dokku-from-deb-package() {
fi
wget -nv -O - https://get.docker.com/ | sh
if [[ "$DOKKU_DISTRO_VERSION" == "14.04" ]]; then
echo "--> Adding nginx PPA"
add-apt-repository -y ppa:nginx/stable
fi
echo "--> Installing dokku"
wget -nv -O - https://packagecloud.io/gpg.key | apt-key add -
echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ trusty main" | tee /etc/apt/sources.list.d/dokku.list

View File

@@ -1,20 +0,0 @@
machine:
pre:
- echo 'DOCKER_OPTS="-s btrfs -e lxc --userland-proxy=false"' | sudo tee -a /etc/default/docker
- sudo curl -L -o /usr/bin/docker 'https://s3-external-1.amazonaws.com/circle-downloads/docker-1.9.1-circleci-cp-workaround'
- sudo chmod 0755 /usr/bin/docker
services:
- docker
dependencies:
cache_directories:
- "~/docker"
override:
- ./tests/ci/parallel_runner.sh setup: { timeout: 300 }
- echo "export DOKKU_SKIP_CLEANUP=true" > /home/dokku/.dokkurc/dokku_skip_cleanup
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to eth0
- sudo ip a a 10.0.0.2/24 broadcast 10.0.0.255 dev eth0
post:
- sudo -E make -e lint
test:
override:
- ./tests/ci/parallel_runner.sh testing: { parallel: true, timeout: 3600 }

View File

@@ -1,4 +1,4 @@
GO_REPO_ROOT := /go/src/github.com/dokku/dokku
BUILD_IMAGE := golang:1.7.5
BUILD_IMAGE := golang:1.9.1
.PHONY: build-in-docker build clean src-clean

View File

@@ -2,14 +2,14 @@ FROM ubuntu:14.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get -y install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db
RUN apt-get update && apt-get -y install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db
RUN command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc
ARG GOLANG_VERSION
RUN wget -qO /tmp/go${GOLANG_VERSION}.linux-amd64.tar.gz https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf /tmp/go${GOLANG_VERSION}.linux-amd64.tar.gz
&& tar -C /usr/local -xzf /tmp/go${GOLANG_VERSION}.linux-amd64.tar.gz \
&& cp /usr/local/go/bin/* /usr/local/bin
ARG WORKDIR=/go/src/github.com/dokku/dokku
@@ -27,8 +27,9 @@ ARG DOKKU_VERSION=master
ARG DOKKU_GIT_REV
ARG IS_RELEASE=false
RUN PATH=$PATH:/usr/local/go/bin GOPATH=/go \
PLUGIN_MAKE_TARGET=${PLUGIN_MAKE_TARGET} \
ENV GOPATH=/go
RUN PLUGIN_MAKE_TARGET=${PLUGIN_MAKE_TARGET} \
DOKKU_VERSION=${DOKKU_VERSION} \
DOKKU_GIT_REV=${DOKKU_GIT_REV} \
IS_RELEASE=${IS_RELEASE} \

View File

@@ -10,7 +10,7 @@ import subprocess
import sys
import threading
VERSION = 'v0.9.2'
VERSION = 'v0.11.2'
hostname = ''
try:

View File

@@ -51,6 +51,7 @@ fn-build-dokku() {
--build-arg GOLANG_VERSION="$GOLANG_VERSION" \
-f "contrib/build.Dockerfile" \
-t "$NAME" .
return "$?"
}
fn-extract-package() {
@@ -68,6 +69,7 @@ fn-extract-package() {
log-info "(extract-package) writing ${PACKAGE_NAME} to correct path"
docker run --rm --entrypoint cat "$NAME" "/data/${PACKAGE_NAME}" > "${ROOT_DIR}/${PACKAGE_NAME}"
return "$?"
}
fn-in-array() {
@@ -133,6 +135,7 @@ fn-publish-package() {
[[ "$RELEASE_TYPE" == "rpm" ]] && DIST=el/7
log-info "(release-dokku) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}"
package_cloud push "${REPOSITORY}/${DIST}" "$PACKAGE_NAME"
return "$?"
}
fn-replace-version() {
@@ -242,14 +245,14 @@ fn-repo-update-history-and-commit() {
HISTORY="${HISTORY}"$'\n'"$HISTORY_BUG"
fi
if [[ "$HISTORY_DOCUMENTATION" ]]; then
if [[ "$HISTORY_ENHANCEMENT" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### New Features"
HISTORY="${HISTORY}"$'\n'"$HISTORY_DOCUMENTATION"
HISTORY="${HISTORY}"$'\n'"$HISTORY_ENHANCEMENT"
fi
if [[ "$HISTORY_ENHANCEMENT" ]]; then
if [[ "$HISTORY_DOCUMENTATION" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### Documentation"
HISTORY="${HISTORY}"$'\n'"$HISTORY_ENHANCEMENT"
HISTORY="${HISTORY}"$'\n'"$HISTORY_DOCUMENTATION"
fi
sed -i.bak '1d' HISTORY.md && rm HISTORY.md.bak
@@ -300,12 +303,19 @@ main() {
fn-repo-update "$IS_RELEASE" "$CURRENT_VERSION" "$NEXT_VERSION"
fn-build-dokku "$IS_RELEASE" "$NEXT_VERSION"
[[ "$?" == 0 ]] || log-fail "Error building package"
fn-extract-package "$IS_RELEASE" "dokku_${NEXT_VERSION}_amd64.deb"
[[ "$?" == 0 ]] || log-fail "Error extracting deb package"
fn-extract-package "$IS_RELEASE" "dokku-${NEXT_VERSION}-1.x86_64.rpm"
[[ "$?" == 0 ]] || log-fail "Error extracting rpm package"
fn-publish-package "$IS_RELEASE" "deb" "dokku_${NEXT_VERSION}_amd64.deb"
[[ "$?" == 0 ]] || log-fail "Error publishing deb package"
fn-publish-package "$IS_RELEASE" "rpm" "dokku-${NEXT_VERSION}-1.x86_64.rpm"
[[ "$?" == 0 ]] || log-fail "Error publishing rpm package"
fn-repo-push-tags "$IS_RELEASE"
}

171
contrib/release-plugin Executable file
View File

@@ -0,0 +1,171 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $TRACE ]] && set -x
readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-plugin-release.XXXX")"
trap 'rm -rf "$TMP_WORK_DIR" > /dev/null' RETURN INT TERM EXIT
log-info() {
# shellcheck disable=SC2034
declare desc="Log info formatter"
echo "$*"
}
log-error() {
# shellcheck disable=SC2034
declare desc="Log error formatter"
echo "! $*" 1>&2
}
log-fail() {
# shellcheck disable=SC2034
declare desc="Log fail formatter"
log-error "$*"
exit -1
}
fn-github-download-release() {
declare REPO_NAME="$1" VERSION="$2"
if [[ -n "$DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN" ]]; then
curl -L "https://api.github.com/repos/${REPO_NAME}/tarball/${VERSION}?access_token=${DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN}"
else
curl -L "https://api.github.com/repos/${REPO_NAME}/tarball/${VERSION}"
fi
}
fn-replace-version() {
declare desc="Replaces the version within a file"
local CURRENT_VERSION="$1"
local NEXT_VERSION="$2"
local FILENAME="$3"
sed -i.bak "s/${CURRENT_VERSION//./\.}/$NEXT_VERSION/g" "$FILENAME" && rm "$FILENAME.bak"
git add "$FILENAME"
}
fn-require-bin() {
declare desc="Checks that a binary exists"
declare BINARY="$1"
if ! command -v "$BINARY" &>/dev/null; then
log-fail "Missing ${BINARY}, please install it"
fi
}
main() {
local RELEASE="$1"
local CURRENT_VERSION FILENAME NEXT_VERSION ORG_REPO_NAME REPO_NAME major minor patch
if [[ -z "$RELEASE" ]]; then
cat<<'EOF'
requirements:
- this is run in a plugin folder
- a `plugin.toml` exists
- the plugin is versioned via git
usage:
# the following commands make these assumptions
# - the plugin's folder name is dokku-example, as is the remote repository
# - the current version is `0.0.1` in the `plugin.toml`
# create the alias
alias release-dokku-plugin="path/to/dokku/contrib/release-plugin"
# make a specific kind of release
release-dokku-plugin patch # creates a 0.0.2 release
release-dokku-plugin minor # creates a 0.1.0 release
release-dokku-plugin major # creates a 1.0.0 release
# release private plugins as tarballs to S3
# note that the plugin *must* exist on github for this to work
export DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN="some-github-token"
export DOKKU_PLUGIN_S3_BUCKET="example"
export DOKKU_PLUGIN_S3_PATH="some/path"
# will upload the versioned tarball url to s3://example/some/path/dokku-plugin-name-0.0.1.tar.gz
release-dokku-plugin patch
EOF
return
fi
fn-require-bin "git"
if [[ "$CI" != "true" ]] && [[ -z "$DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN" ]]; then
log-info "You are running this without a DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN environment variable."
log-info "Doing so disables uploading releases to S3, which may be necessary for installing private plugins."
while true; do
read -rp "Do you wish to continue? " yn
case $yn in
[Yy]* ) break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
fi
if [[ -n "$DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN" ]]; then
fn-require-bin "aws"
fn-require-bin "curl"
if [[ -z "$DOKKU_PLUGIN_S3_BUCKET" ]]; then
log-fail "No DOKKU_PLUGIN_S3_BUCKET environment variable set"
fi
if [[ -z "$DOKKU_PLUGIN_S3_PATH" ]]; then
log-fail "No DOKKU_PLUGIN_S3_PATH environment variable set"
fi
fi
if [[ ! -f plugin.toml ]]; then
log-error "No plugin.toml found"
return 1
fi
if [[ ! -d .git ]]; then
log-error "No git repository found"
return 1
fi
CURRENT_VERSION=$(grep version plugin.toml | cut -d '"' -f2)
major=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[1]}')
minor=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[2]}')
patch=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[3]}')
if [[ "$RELEASE" == "major" ]]; then
major=$((major + 1));
minor="0"
patch="0"
elif [[ "$RELEASE" == "minor" ]]; then
minor=$((minor + 1));
patch="0"
elif [[ "$RELEASE" == "patch" ]]; then
patch=$((patch + 1));
else
log-error "Invalid release type specified"
return 1
fi
NEXT_VERSION="${major}.${minor}.${patch}"
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" plugin.toml
git add plugin.toml
git commit -m "Release ${NEXT_VERSION}"
git tag "${NEXT_VERSION}"
git push --tags origin master
git fetch
ORG_REPO_NAME="$(git remote -v | grep origin | HEAD -n1 | cut -d':' -f2 | cut -d'.' -f1)"
REPO_NAME="$(echo "$ORG_REPO_NAME" | cut -d'/' -f2)"
FILENAME="${REPO_NAME}-${NEXT_VERSION}.tar.gz"
if [[ -n "$DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN" ]]; then
DOKKU_PLUGIN_S3_BUCKET="${DOKKU_PLUGIN_S3_BUCKET%/}"
DOKKU_PLUGIN_S3_PATH="${DOKKU_PLUGIN_S3_PATH%/}"
if [[ "$DOKKU_PLUGIN_S3_PATH" != "/" ]]; then
DOKKU_PLUGIN_S3_PATH="${DOKKU_PLUGIN_S3_PATH}/"
fi
fn-github-download-release "$ORG_REPO_NAME" "$NEXT_VERSION" > "${TMP_WORK_DIR}/${FILENAME}"
aws s3 cp "${TMP_WORK_DIR}/${FILENAME}" "s3://${DOKKU_PLUGIN_S3_BUCKET}/${DOKKU_PLUGIN_S3_PATH}${FILENAME}" --acl public-read
fi
}
main "$@"

11
deb.mk
View File

@@ -1,6 +1,6 @@
HEROKUISH_DESCRIPTION = 'Herokuish uses Docker and Buildpacks to build applications like Heroku'
HEROKUISH_REPO_NAME ?= gliderlabs/herokuish
HEROKUISH_VERSION ?= 0.3.27
HEROKUISH_VERSION ?= 0.3.33
HEROKUISH_ARCHITECTURE = amd64
HEROKUISH_PACKAGE_NAME = herokuish_$(HEROKUISH_VERSION)_$(HEROKUISH_ARCHITECTURE).deb
@@ -86,16 +86,11 @@ deb-herokuish:
@echo "-> Creating deb files"
@echo "#!/usr/bin/env bash" >> /tmp/tmp/post-install
@echo "sleep 5" >> /tmp/tmp/post-install
@echo "count=\`sudo docker images | grep gliderlabs/herokuish | wc -l\`" >> /tmp/tmp/post-install
@echo 'if [ "$$count" -ne 0 ]; then' >> /tmp/tmp/post-install
@echo " echo 'Removing old herokuish image'" >> /tmp/tmp/post-install
@echo " sudo docker rmi gliderlabs/herokuish" >> /tmp/tmp/post-install
@echo "fi" >> /tmp/tmp/post-install
@echo "echo 'Importing herokuish into docker (around 5 minutes)'" >> /tmp/tmp/post-install
@echo 'if [[ ! -z $${http_proxy+x} ]]; then BUILDARGS="--build-arg http_proxy=$$http_proxy"; fi' >> /tmp/tmp/post-install
@echo 'if [[ ! -z $${https_proxy+x} ]]; then BUILDARGS="$$BUILDARGS --build-arg https_proxy=$$https_proxy"; fi' >> /tmp/tmp/post-install
@echo 'if [[ ! -z $${BUILDARGS+x} ]]; then echo Adding proxy settings to docker build: $$BUILDARGS; fi' >> /tmp/tmp/post-install
@echo 'sudo docker build $$BUILDARGS -t gliderlabs/herokuish /var/lib/herokuish 1> /dev/null' >> /tmp/tmp/post-install
@echo 'sudo docker build --pull $$BUILDARGS -t gliderlabs/herokuish /var/lib/herokuish' >> /tmp/tmp/post-install
@echo "-> Cloning repository"
git clone -q "https://github.com/$(HEROKUISH_REPO_NAME).git" --branch "v$(HEROKUISH_VERSION)" /tmp/tmp/herokuish > /dev/null
@@ -106,7 +101,7 @@ deb-herokuish:
cp -rf /tmp/tmp/herokuish /tmp/build/var/lib/herokuish
@echo "-> Creating $(HEROKUISH_PACKAGE_NAME)"
sudo fpm -t deb -s dir -C /tmp/build -n herokuish -v $(HEROKUISH_VERSION) -a $(HEROKUISH_ARCHITECTURE) -p $(HEROKUISH_PACKAGE_NAME) --deb-pre-depends 'docker-engine-cs (>= 1.9.1) | docker-engine (>= 1.9.1)' --deb-pre-depends sudo --after-install /tmp/tmp/post-install --url "https://github.com/$(HEROKUISH_REPO_NAME)" --description $(HEROKUISH_DESCRIPTION) --license 'MIT License' .
sudo fpm -t deb -s dir -C /tmp/build -n herokuish -v $(HEROKUISH_VERSION) -a $(HEROKUISH_ARCHITECTURE) -p $(HEROKUISH_PACKAGE_NAME) --deb-pre-depends 'docker-engine-cs (>= 1.9.1) | docker-engine (>= 1.9.1) | docker-ce | docker-ee' --deb-pre-depends sudo --after-install /tmp/tmp/post-install --url "https://github.com/$(HEROKUISH_REPO_NAME)" --description $(HEROKUISH_DESCRIPTION) --license 'MIT License' .
mv *.deb /tmp
deb-dokku:

6
debian/control vendored
View File

@@ -1,11 +1,11 @@
Package: dokku
Version: 0.9.2
Version: 0.11.2
Section: web
Priority: optional
Architecture: amd64
Depends: locales, git, make, curl, gcc, man-db, sshcommand (>= 0.6.0), gliderlabs-sigil, docker-engine-cs (>= 1.9.1) | docker-engine (>= 1.9.1) | docker-ce | docker-ee, software-properties-common, python-software-properties
Depends: locales, git, make, curl, gcc, man-db, netcat, sshcommand (>= 0.6.0), gliderlabs-sigil, docker-engine-cs (>= 1.9.1) | docker-engine (>= 1.9.1) | docker-io (>= 1.9.1) | docker-ce | docker-ee, software-properties-common, python-software-properties | python3-software-properties, rsyslog
Recommends: herokuish (>= 0.3.4), parallel
Pre-Depends: nginx, dnsutils, cgroupfs-mount | cgroup-lite, plugn (>= 0.3.0), sudo, python2.7, debconf
Pre-Depends: nginx (>= 1.8.0) | openresty, dnsutils, cgroupfs-mount | cgroup-lite, plugn (>= 0.3.0), sudo, python2.7, debconf
Maintainer: Jose Diaz-Gonzalez <dokku@josediazgonzalez.com>
Description: Docker-powered PaaS that helps build and manage the lifecycle of applications
Dokku is an extensible, open source Platform as a Service

View File

@@ -3,3 +3,10 @@ dokku: maintainer-script-calls-systemctl postinst:87
dokku: changelog-file-missing-in-native-package
dokku: statically-linked-binary
dokku: unstripped-binary-or-object
# The Go compiler is currently unable to produce read-only relocations
# (it produces static binaries).
dokku: hardening-no-relro
# Built golang binaries link to libc
dokku: missing-dependency-on-libc

13
debian/postinst vendored
View File

@@ -100,12 +100,15 @@ case "$1" in
exit 0
fi
db_get "dokku/vhost_enable"
if [ "$RET" = "true" ]; then
db_get "dokku/hostname"
echo "$RET" > "${DOKKU_ROOT}/VHOST"
if [ -f "${DOKKU_ROOT}/VHOST" ]; then
echo "VHOST file detected, skipping modification"
else
rm -f "${DOKKU_ROOT}/VHOST"
db_get "dokku/vhost_enable"
if [ "$RET" = "true" ]; then
db_get "dokku/hostname"
echo "Setting VHOST contents to $RET"
echo "$RET" > "${DOKKU_ROOT}/VHOST"
fi
fi
db_get "dokku/hostname"

View File

@@ -26,7 +26,7 @@ dokku postgres:import [db_name] < [db_name].dump
Dokku doesn't enforce a [300mb](https://devcenter.heroku.com/articles/slug-compiler#slug-size) limit on apps, but it's best practice to keep binary assets outside of git. Since containers are considered volatile in Dokku, external stores like s3 or storage mounts should be used for non-volatile items like user uploads. The Dokku storage core plugin can be used to mount local directories / volumes inside the docker container.
See the [persistent storage documentation](/dokku/advanced-usage/persistent-storage/) for more details.
See the [persistent storage documentation](/docs/advanced-usage/persistent-storage.md) for more details.
## Disaster Recovery

View File

@@ -28,7 +28,7 @@ Dokku deploys your application in multiple "phases" and the `docker-options` plu
### Add Docker options
Add some options for the deployed/running app and when executing [`dokku run`](/dokku/deployment/one-off-processes/):
Add some options for the deployed/running app and when executing [`dokku run`](/docs/deployment/one-off-processes.md):
```shell
# Mount a host volume in a Docker container: "-v /host/path:/container/path"

View File

@@ -14,9 +14,19 @@ storage:unmount <app> <host-dir:container-dir> # Remove an existing bind mount
> The storage plugin is compatible with storage mounts created with the docker-options. The storage plugin will only list mounts from the deploy/run phase.
## Ideology and Background
The storage plugin supports the following mount points:
The storage plugin requires explicit paths on the host side. This is intentional to ensure that new users avoid running into unexpected results with implicit paths that may not exist (a feature deprecate in [Docker 1.9.0](https://github.com/docker/docker/releases/tag/v1.9.0])). The container directory is created for the mount point in the container. Any existing directory contents are not accessible after a mount is added to the container. Dokku creates a new directory `/var/lib/dokku/data/storage` during installation, it's the general consensus that new users should use this directory. Mounts are only available at run and deploy times, you must redeploy (restart) an app to mount or unmount to an existing app's container.
- explicit paths that exist on the host
- docker volumes
There are a few caveats to using the persistent storage plugin:
- Using implicit paths that do not exist are no longer supported, and actually deprecated in [Docker 1.9.0](https://github.com/docker/docker/releases/tag/v1.9.0). When you specify a persistent storage mount, the host directory is **not** autocreated by either Dokku or Docker.
- We recommend using the directory `/var/lib/dokku/data/storage` directory as the root host path for mounts, and we create this on Dokku installation.
- Mounts are only available at run and deploy times, and you **must** redeploy (restart) an app to mount or unmount to an existing app's container.
- When a directory is mounted, any existing files within the container will be overwritten. If you are writing assets during the build process and then replace the directory with a mount, those files will no longer exist. This is a Docker limitation.
- Paths are mounted within the container at the root of the disk - `/` - and are **not** relative to `/app` (for buildpacks deploys) or the `WORKDIR` (for Dockerfile/Docker images).
- For applications using buildpack deploys, the host directory should be owned by the user and group id `32767`. This is due to how permissions within Herokuish - which builds the Docker images - works. For Dockerfile or Docker image deployments, please use the user and group id which corresponds to the one running the process within the container.
## Usage
@@ -30,7 +40,7 @@ dokku storage:mount node-js-app /var/lib/dokku/data/storage/node-js-app:/storage
Dokku will then mount the shared contents of `/var/lib/dokku/data/storage` to `/storage` inside the container.
Once you have mounted persistent storage, you will also need to restart the application. See the
[process scaling documentation](/dokku/deployment/process-management) for more information.
[process scaling documentation](/docs/deployment/process-management.md) for more information.
```shell
dokku ps:rebuild app-name
@@ -45,7 +55,8 @@ mkdir -p /var/lib/dokku/data/storage/node-js-app
# ensure the proper user has access to this directory
chown -R dokku:dokku /var/lib/dokku/data/storage/node-js-app
# as of 0.7.x, you should chown using the `32767` user and group id
# as of 0.7.x, you should chown using the `32767` user and group id for buildpack deploys
# For dockerfile deploys, substitute the user and group id in use within the image
chown -R 32767:32767 /var/lib/dokku/data/storage/node-js-app
# mount the directory into your container's /app/storage directory, relative to root

View File

@@ -31,30 +31,30 @@ dokku plugin
```
plugn: dev
00_dokku-standard 0.9.2 enabled dokku core standard plugin
20_events 0.9.2 enabled dokku core events logging plugin
apps 0.9.2 enabled dokku core apps plugin
build-env 0.9.2 enabled dokku core build-env plugin
certs 0.9.2 enabled dokku core certificate management plugin
checks 0.9.2 enabled dokku core checks plugin
common 0.9.2 enabled dokku core common plugin
config 0.9.2 enabled dokku core config plugin
docker-options 0.9.2 enabled dokku core docker-options plugin
domains 0.9.2 enabled dokku core domains plugin
enter 0.9.2 enabled dokku core enter plugin
git 0.9.2 enabled dokku core git plugin
logs 0.9.2 enabled dokku core logs plugin
named-containers 0.9.2 enabled dokku core named containers plugin
nginx-vhosts 0.9.2 enabled dokku core nginx-vhosts plugin
plugin 0.9.2 enabled dokku core plugin plugin
proxy 0.9.2 enabled dokku core proxy plugin
ps 0.9.2 enabled dokku core ps plugin
repo 0.9.2 enabled dokku core repo plugin
shell 0.9.2 enabled dokku core shell plugin
ssh-keys 0.9.2 enabled dokku core ssh-keys plugin
storage 0.9.2 enabled dokku core storage plugin
tags 0.9.2 enabled dokku core tags plugin
tar 0.9.2 enabled dokku core tar plugin
00_dokku-standard 0.11.2 enabled dokku core standard plugin
20_events 0.11.2 enabled dokku core events logging plugin
apps 0.11.2 enabled dokku core apps plugin
build-env 0.11.2 enabled dokku core build-env plugin
certs 0.11.2 enabled dokku core certificate management plugin
checks 0.11.2 enabled dokku core checks plugin
common 0.11.2 enabled dokku core common plugin
config 0.11.2 enabled dokku core config plugin
docker-options 0.11.2 enabled dokku core docker-options plugin
domains 0.11.2 enabled dokku core domains plugin
enter 0.11.2 enabled dokku core enter plugin
git 0.11.2 enabled dokku core git plugin
logs 0.11.2 enabled dokku core logs plugin
named-containers 0.11.2 enabled dokku core named containers plugin
nginx-vhosts 0.11.2 enabled dokku core nginx-vhosts plugin
plugin 0.11.2 enabled dokku core plugin plugin
proxy 0.11.2 enabled dokku core proxy plugin
ps 0.11.2 enabled dokku core ps plugin
repo 0.11.2 enabled dokku core repo plugin
shell 0.11.2 enabled dokku core shell plugin
ssh-keys 0.11.2 enabled dokku core ssh-keys plugin
storage 0.11.2 enabled dokku core storage plugin
tags 0.11.2 enabled dokku core tags plugin
tar 0.11.2 enabled dokku core tar plugin
```
Installing a plugin is easy as well using the `plugin:install` command. This command will also trigger the `install` pluginhook on all existing plugins.

View File

@@ -0,0 +1,13 @@
# 0.10.0 Migration Guide
## PCI Compliance
By default, Dokku will ship a PCI Compliant nginx configuration. For developers whose users are on older browsers or mobile devices, you may need to ship a custom `nginx.conf.sigil` to enable ciphers for older browsers.
See the [nginx customization](/docs/configuration/nginx/#customizing-the-nginx-configuration) docs for more details.
## Nginx Error Pages
We now ship with nicer error pages by default. You are free to customize your Dokku installation via a custom `nginx.conf.sigil` to change what error pages are displayed in different circumstances.
See the [nginx customization](/docs/configuration/nginx/#customizing-the-nginx-configuration) docs for more details.

View File

@@ -5,11 +5,11 @@
- The nginx-vhosts template language is now [sigil](https://github.com/gliderlabs/sigil)
- No need to escape literal `$` characters (or other "bash-isms")
- Template variables are represented as {{ .VARIABLE_NAME }}
- A detailed list of template variables can be found [here](/dokku/configuration/nginx/#available-template-variables)
- A detailed list of template variables can be found [here](/docs/configuration/nginx.md#available-template-variables)
- A custom nginx-vhosts template must be named `nginx.conf.sigil`
- The default path for this custom template is the root of your repo (i.e. `/app` in the container or `WORKDIR` if defined in a dockerfile app)
- Dokku no longer looks for this file in `/home/dokku/myapp` on the Dokku server
- Check out an example template [here](/dokku/configuration/nginx/)
- Check out an example template [here](/docs/configuration/nginx.md)
- Support for server-wide SSL certs have been dropped in favor of using the `certs` plugin
- `dokku certs:add myapp < certs.tar`
- All domains for an SSL-enabled app will be redirected to https by default
@@ -20,6 +20,6 @@
## Dockerfile apps with exposed ports
- Dockerfiles with `EXPOSE` clauses will get [all **tcp** ports proxied by default](/dokku/deployment/methods/dockerfiles/#exposed-ports)
- Dockerfiles with `EXPOSE` clauses will get [all **tcp** ports proxied by default](/docs/deployment/methods/dockerfiles.md#exposed-ports)
- Note that nginx will proxy the same port numbers to listen publicly
- UDP ports can be exposed by disabling the [nginx proxy](/dokku/advanced-usage/proxy-management/) with `dokku proxy:disable myapp`
- UDP ports can be exposed by disabling the [nginx proxy](/docs/advanced-usage/proxy-management.md) with `dokku proxy:disable myapp`

View File

@@ -7,16 +7,16 @@
- `DOKKU_CHECKS_ENABLED` has been migrated to `DOKKU_CHECKS_SKIPPED`
- `DOKKU_CHECKS_DISABLED` is now a thing
- The values for the above can be a comma-separated list of process-types or the literal string `_all_`
- See the [updated `checks`](/dokku/deployment/zero-downtime-deploys/) docs for more info
- See the [updated `checks`](/docs/deployment/zero-downtime-deploys.md) docs for more info
## Proxy port mapping
- You can now configure host -> container proxy port mappings
- The UI is handled by the [proxy](/dokku/advanced-usage/proxy-management/) interface plugin by setting the `DOKKU_PROXY_PORT_MAP` config variable in the format of `scheme:host-port:container-port`. The default `nginx-vhosts` proxy plugin supports both the `http` and `https` schemes.
- The UI is handled by the [proxy](/docs/advanced-usage/proxy-management.md) interface plugin by setting the `DOKKU_PROXY_PORT_MAP` config variable in the format of `scheme:host-port:container-port`. The default `nginx-vhosts` proxy plugin supports both the `http` and `https` schemes.
- Default port mappings
- buildpack apps will be set to `http:80:5000` and will also include `https:443:5000` if SSL is enabled.
- dockerfile apps with explicitly exposed ports (i.e. using the `EXPOSE` directive) will be configured with a listener on each exposed port that proxies to the same port of the deployed application container.
- You may override this behavior with the [`proxy:ports-*` commands](/dokku/advanced-usage/proxy-management/) or by directly setting `DOKKU_PROXY_PORT_MAP` with the `config:set` command
- You may override this behavior with the [`proxy:ports-*` commands](/docs/advanced-usage/proxy-management.md) or by directly setting `DOKKU_PROXY_PORT_MAP` with the `config:set` command
- dockerfile apps without explicitly exposed ports will behave the same as a buildpack app
- NOTE: These defaults **are not** automatically changed on subsequent pushes and must be manipulated with the aforementioned commands

View File

@@ -2,12 +2,12 @@
## Persistent Storage
We should now properly handle file ownership for mounted directories. This was enhanced in 0.7.1. See the [persistent storage documentation](/dokku/advanced-usage/persistent-storage/) for more details.
We should now properly handle file ownership for mounted directories. This was enhanced in 0.7.1. See the [persistent storage documentation](/docs/advanced-usage/persistent-storage.md) for more details.
## Restart Policies
If you previously managed container restart policies via docker-options, these can now be managed natively via the built-in `ps` plugin. There is no migration necessary. See the [restart policy documentation](/dokku/deployment/process-management/#restart-policies) for more details.
If you previously managed container restart policies via docker-options, these can now be managed natively via the built-in `ps` plugin. There is no migration necessary. See the [restart policy documentation](/docs/deployment/process-management.md#restart-policies) for more details.
## SSH Keys
Dokku now has an `ssh-keys` plugin that can be used to manage ssh keys for the `dokku` user on the host operating system. See the [user management documentation](/dokku/deployment/user-management/) for more details.
Dokku now has an `ssh-keys` plugin that can be used to manage ssh keys for the `dokku` user on the host operating system. See the [user management documentation](/docs/deployment/user-management.md) for more details.

View File

@@ -0,0 +1,19 @@
# 0.8.0 Migration Guide
## Domain Management
You can now set global and app domains via `domains:set` and `domains:set-global`. See the [domains documentation](/docs/configuration/domains/) for more details.
## Plugin Uninstallation
A new `uninstall` plugin trigger was introduced. This functionality may be in use for newer plugins, so be aware that older Dokku versions may require manual cleanup.
See the [uninstall trigger documentation](/docs/development/plugin-triggers/#uninstall) for implementation instructions.
## Deployment Tasks
Should a pre or post deployment task fail, we now fail the entire deploy.
## Nginx HTTP2 Support
Due to bugs in Nginx, the minimum version for HTTP2 is now 1.11.5.

View File

@@ -0,0 +1,12 @@
# 0.9.0 Migration Guide
## Golang Migration
There is an ongoing migration to rewrite Dokku in Golang. The reasons are beyond the scope of this document, but this may impact any patches you have for Dokku. As of 0.9.0, only the `repo` plugin is in Golang.
The following shall remain true, regardless of the state of our rewrite:
- You will be able to write custom plugins in any language.
- You will be able to enable or disable core plugins.
- `plugn` will continue to be used for executing plugin triggers.
- We will provide bash wrappers that can be sourced to execute core functionality that is implemented in golang.

View File

@@ -2,10 +2,10 @@
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/mstile-70x70.png"/>
<square150x150logo src="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/mstile-150x150.png"/>
<square310x310logo src="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/mstile-310x310.png"/>
<wide310x150logo src="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/mstile-310x150.png"/>
<square70x70logo src="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/mstile-70x70.png"/>
<square150x150logo src="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/mstile-150x150.png"/>
<square310x310logo src="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/mstile-310x310.png"/>
<wide310x150logo src="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/mstile-310x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>

View File

@@ -2,37 +2,37 @@
"name": "Dokku",
"icons": [
{
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.9.2\/docs\/assets\/favicons\/android-chrome-36x36.png",
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.11.2\/docs\/assets\/favicons\/android-chrome-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.9.2\/docs\/assets\/favicons\/android-chrome-48x48.png",
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.11.2\/docs\/assets\/favicons\/android-chrome-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.9.2\/docs\/assets\/favicons\/android-chrome-72x72.png",
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.11.2\/docs\/assets\/favicons\/android-chrome-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.9.2\/docs\/assets\/favicons\/android-chrome-96x96.png",
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.11.2\/docs\/assets\/favicons\/android-chrome-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.9.2\/docs\/assets\/favicons\/android-chrome-144x144.png",
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.11.2\/docs\/assets\/favicons\/android-chrome-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.9.2\/docs\/assets\/favicons\/android-chrome-192x192.png",
"src": "https:\/\/cdn.rawgit.com\/progrium\/dokku\/v0.11.2\/docs\/assets\/favicons\/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"

View File

@@ -35,13 +35,13 @@ h1 {
background-repeat: no-repeat;
}
.header .navbar-brand a {
background-image: url(https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/dokku.png);
background-image: url(https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/dokku.png);
text-indent: 40px;
}
.blurb {
color: #424242;
background-color: #ededed;
background-image: url(https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/gplaypattern.png);
background-image: url(https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/gplaypattern.png);
padding: 45px 0;
text-align: center;
}
@@ -169,7 +169,8 @@ h1 {
font-size: 16px;
font-weight: 300;
margin-bottom: 2.5em;
padding: 2.5em 0;
padding-top: 2.5em;
padding-bottom: 2.5em;
text-align: center
}
.slack-channel .inline-container {
@@ -600,6 +601,11 @@ ul.fas li .fa-large:before, ul.fas li .fa-large:before {
height: auto
}
}
.button.slack-button > img {
width: inherit;
}
@media (min-width: 768px) {
.col-md-offset-right-2 {
margin-right: 20.666667%;

View File

@@ -6,6 +6,8 @@
"0.6.5",
"0.7.2",
"0.8.2",
"0.9.2"
"0.9.4",
"0.10.5",
"0.11.2"
]
}

View File

@@ -12,11 +12,11 @@ Let's take a quick look at the current Dokku nginx plugin that's shipped with Do
## Installing a plugin
[See the plugin management documentation](/dokku/advanced-usage/plugin-management/).
[See the plugin management documentation](/docs/advanced-usage/plugin-management.md).
## Creating your own plugin
[See the full documentation](/dokku/development/plugin-creation/).
[See the full documentation](/docs/development/plugin-creation.md).
## Official Plugins (Beta)
@@ -89,6 +89,7 @@ Note: The following plugins have been supplied by our community and may not have
[Kloadut]: https://github.com/Kloadut
[krisrang]: https://github.com/krisrang
[luxifer]: https://github.com/luxifer
[m0rth1um]: https://github.com/m0rth1um
[Maciej Łebkowski]: https://github.com/mlebkowski
[matto1990]: https://github.com/matto1990
[mbreit]: https://github.com/mbreit
@@ -99,6 +100,7 @@ Note: The following plugins have been supplied by our community and may not have
[mixxorz]: https://github.com/mixxorz
[mlebkowski]: https://github.com/mlebkowski
[motin]: https://github.com/motin
[mrname]: https://github.com/mrname
[musicglue]: https://github.com/musicglue
[neam]: https://github.com/neam
[nickcharlton]: https://github.com/nickcharlton
@@ -151,6 +153,7 @@ Note: The following plugins have been supplied by our community and may not have
| [RabbitMQ](https://github.com/jlachowski/dokku-rabbitmq-plugin) | [jlachowski][] | 0.3.x |
| [RabbitMQ (single container)](https://github.com/jlachowski/dokku-rabbitmq-single-plugin) | [jlachowski][] | 0.3.x |
| [ElasticMQ (SQS compatible)](https://github.com/cu12/dokku-elasticmq) | [cu12][] | 0.5.0+ |
| [VerneMQ (MQTT Broker)](https://github.com/SpinifexGroup/dokku-vernemq) | [mrname][] | 0.4.0+ |
#### Other
@@ -175,7 +178,7 @@ Note: The following plugins have been supplied by our community and may not have
| [Dokku Copy App Config Files](https://github.com/josegonzalez/dokku-supply-config) | [josegonzalez][] | 0.4.0+ |
| [Dokku Registry](https://github.com/agco-adm/dokku-registry)<sup>1</sup> | [agco-adm][] | 0.4.0+ |
| [Dokku Require](https://github.com/crisward/dokku-require)<sup>2</sup> | [crisward][] | 0.4.0+ |
| [git rev-parse HEAD in env](https://github.com/cjblomqvist/dokku-git-rev) | [cjblomqvist][] | 0.4.0+ |
| [git rev-parse HEAD in env](https://github.com/dokku-community/dokku-git-rev) | [cjblomqvist][] | 0.4.0+ |
| [Global Certificates](https://github.com/josegonzalez/dokku-global-cert) | [josegonzalez][] | 0.5.0+ |
| [Graduate (Environment Management)](https://github.com/glassechidna/dokku-graduate) | [Benjamin-Dobell][] | 0.4.0+ |
| [Haproxy tcp load balancer](https://github.com/256dpi/dokku-haproxy) | [256dpi][] | 0.4.0+ |
@@ -215,6 +218,7 @@ Note: The following plugins have been supplied by our community and may not have
| [Docker auto persist volumes](https://github.com/Flink/dokku-docker-auto-volumes) | [Flink][] | 0.4.0+ |
| [Hostname](https://github.com/michaelshobbs/dokku-hostname) | [michaelshobbs][] | 0.4.0+ |
| [Logspout](https://github.com/michaelshobbs/dokku-logspout) | [michaelshobbs][] | 0.4.0+ |
| [Syslog](https://github.com/michaelshobbs/dokku-syslog) | [michaelshobbs][] | 0.10.4+ |
| [Long Timeout](https://github.com/investtools/dokku-long-timeout-plugin) | [investtools][] | 0.4.0+ |
| [Monit](https://github.com/cjblomqvist/dokku-monit) | [cjblomqvist][] | 0.3.x |
| [Monorepo](https://github.com/iamale/dokku-monorepo) | [iamale][] | 0.4.0+ |
@@ -222,6 +226,7 @@ Note: The following plugins have been supplied by our community and may not have
| [Node](https://github.com/pnegahdar/dokku-node) | [pnegahdar][] | 0.3.x |
| [Rollbar](https://github.com/iloveitaly/dokku-rollbar) | [iloveitaly][] | 0.5.0+ |
| [Slack Notifications](https://github.com/ribot/dokku-slack) | [ribot][] | 0.4.0+ |
| [Telegram Notifications](https://github.com/m0rth1um/dokku-telegram) | [m0rth1um][] | 0.4.0+ |
| [Tor](https://github.com/michaelshobbs/dokku-tor) | [michaelshobbs][] | 0.4.0+ |
| [User ACL](https://github.com/dokku-community/dokku-acl) | [Maciej Łebkowski][] | 0.4.0+ |
| [Webhooks](https://github.com/nickstenning/dokku-webhooks) | [nickstenning][] | 0.3.x |

View File

@@ -15,7 +15,7 @@ domains:set <app> <domain> [<domain> ...] # Set domains for app
domains:set-global <domain> [<domain> ...] # Set global domain names
```
> Adding a domain before deploying an application will result in port mappings being set. This may cause issues for applications that use non-standard ports, as those will not be automatically detected. Please refer to the [proxy documentation](/dokku/advanced-usage/proxy-management/) for information as to how to reconfigure the mappings.
> Adding a domain before deploying an application will result in port mappings being set. This may cause issues for applications that use non-standard ports, as those will not be automatically detected. Please refer to the [proxy documentation](/docs/advanced-usage/proxy-management.md) for information as to how to reconfigure the mappings.
## Customizing hostnames

View File

@@ -5,10 +5,11 @@ Typically an application will require some configuration to run properly. Dokku
The `config` plugin provides the following commands to manage your variables:
```
config (<app>|--global) Display all global or app-specific config vars
config:get (<app>|--global) KEY Display a global or app-specific config value
config:set (<app>|--global) KEY1=VALUE1 [KEY2=VALUE2 ...] Set one or more config vars
config:unset (<app>|--global) KEY1 [KEY2 ...] Unset one or more config vars
config (<app>|--global) Display all global or app-specific config vars
config:get (<app>|--global) KEY Display a global or app-specific config value
config:set (<app>|--global) KEY1=VALUE1 [KEY2=VALUE2 ...] Set one or more config vars
config:unset (<app>|--global) KEY1 [KEY2 ...] Unset one or more config vars
config:export [--format=FORMAT] [--merged] (<app>|--global) Export all global or app-specific configuration
```
The variables are available both at run time and during the application build/compilation step for buildpack-based deploys. For security reasons - and as per [docker recommendations](https://github.com/docker/docker/issues/13490) - Dockerfile-based deploys have variables available *only* during runtime, as noted in [this issue](https://github.com/dokku/dokku/issues/1860).
@@ -23,10 +24,15 @@ You can set multiple environment variables at once:
dokku config:set node-js-app ENV=prod COMPILE_ASSETS=1
```
When setting variables with whitespaces, you need to escape them:
> Note: Whitespace and special characters get tricky. If you are using dokku locally you don't need to do any special escaping. If you are using dokku over ssh you will need to backslash-escape spaces:
```shell
dokku config:set node-js-app KEY="VAL\ WITH\ SPACES"
```
Dokku can also read base64 encoded values. That's the easiest way to set a value with newlines or spaces. To set a value with newlines you need to base64 encode it first and pass the `--encoded` flag:
```shell
dokku config:set node-js-app KEY=\"VAL\ WITH\ SPACES\"
dokku config:set --encoded node-js-app KEY="$(base64 ~/.ssh/id_rsa)"
```
When setting or unsetting environment variables, you may wish to avoid an application restart. This is useful when developing plugins or when setting multiple environment variables in a scripted manner. To do so, use the `--no-restart` flag:
@@ -35,25 +41,78 @@ When setting or unsetting environment variables, you may wish to avoid an applic
dokku config:set --no-restart node-js-app ENV=prod
```
If you wish to have the variables output in an `eval`-compatible form, you can use the `--export` flag:
If you wish to have the variables output in an `eval`-compatible form, you can use the `config:export` command
```shell
dokku config node-js-app --export
dokku config:export node-js-app
# outputs variables in the form:
#
# export ENV='prod'
# export COMPILE_ASSETS='1'
# source in all the node-js-app app environment variables
eval $(dokku config node-js-app --export)
eval $(dokku config:export node-js-app)
```
You can also output the variables in a single-line for usage in command-line utilities with the `--shell` flag:
You can control the format of the exported variables with the `--format` flag.
`--format=shell` will output the variables in a single-line for usage in command-line utilities:
```shell
dokku config node-js-app --shell
dokku config:export --format shell node-js-app
# outputs variables in the form:
#
# ENV='prod' COMPILE_ASSETS='1'
```
## Special Config Variables
The following list config variables have special meaning and can be set in a variety of ways.
> Warning: This list is not exhaustive, and may vary from version to version.
| Name | Default | How to modify | Description |
| ------------------------------ | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| `DOKKU_ROOT` | `~dokku` | `/etc/environment` | The root directory where dokku will store application repositories, as well as certain configuration files. |
| `DOKKU_IMAGE` | `gliderlabs/herokuish` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The default image to use when building herokuish containers. |
| `DOKKU_LIB_ROOT` | `/var/lib/dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory where plugins, certain data, and general configuration is stored. |
| `PLUGIN_PATH` | `$DOKKU_LIB_ROOT/plugins"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The top-level directory where plugins are stored. |
| `PLUGIN_AVAILABLE_PATH` | `$PLUGIN_PATH/available"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that holds all available plugins, including core. |
| `PLUGIN_ENABLED_PATH` | `$PLUGIN_PATH/enabled"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that holds all enabled plugins, including core. |
| `PLUGIN_CORE_PATH` | `$DOKKU_LIB_ROOT/core-plugins"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that stores all core plugins. |
| `PLUGIN_CORE_AVAILABLE_PATH` | `$PLUGIN_CORE_PATH/available"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that stores all available core plugins. |
| `PLUGIN_CORE_ENABLED_PATH` | `$PLUGIN_CORE_PATH/enabled"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that stores all enabled core plugins. |
| `DOKKU_LOGS_DIR` | `/var/log/dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | Where dokku logs should be written to. |
| `DOKKU_EVENTS_LOGFILE` | `$DOKKU_LOGS_DIR/events.log` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | Where the events log file is written to. |
| `DOKKU_APP_NAME` | none | `--app APP` flag | Name of application to work on. Respected by core plugins. |
| `DOKKU_APPS_FORCE_DELETE` | none | `--force` flag | Whether to force delete an application. Also used by other plugins for destructive actions. |
| `DOKKU_DETACH_CONTAINER` | none | `--detach` flag | Whether to detach a container started via `dokku run`. |
| `DOKKU_QUIET_OUTPUT` | none | `--quiet` flag | Silences certain header output for `dokku` commands. |
| `DOKKU_RM_CONTAINER` | none | `dokku config:set` <br /> `--rm-container` flag <br /> `--rm` flag | Whether to keep `dokku run` containers around or not. |
| `DOKKU_TRACE` | none | `dokku trace on` <br /> `dokku trace false` <br /> `--trace` flag | Turn on very verbose debugging. |
| `DOKKU_APP_PROXY_TYPE` | `nginx` | `dokku proxy:set` | |
| `DOKKU_APP_RESTORE` | `1` | `dokku config:set` <br /> `dokku ps:stop` | |
| `DOKKU_APP_TYPE` | `herokuish` | Auto-detected by using buildpacks or dockerfile | |
| `DOKKU_CHECKS_DISABLED` | none | `dokku checks:disable` | |
| `DOKKU_CHECKS_ENABLED` | none | `dokku checks:enable` | |
| `DOKKU_CHECKS_SKIPPED` | none | `dokku checks:skip` | |
| `DOKKU_CHECKS_WAIT` | `5` | `dokku config:set` | Wait this many seconds for the container to start before running checks.
| `DOKKU_CHECKS_TIMEOUT` | `30` | `dokku config:set` | Wait this many seconds for each response before marking it as a failure.
| `DOKKU_CHECKS_ATTEMPTS` | `5` | `dokku config:set` | Number of retries for to run for a specific check before marking it as a failure
| `DOKKU_DEFAULT_CHECKS_WAIT` | `10` | `dokku config:set` | If no user-defined checks are specified - or if the process being checked is not a `web` process - this is the period of time Dokku will wait before checking that a container is still running. |
| `DOKKU_DEPLOY_BRANCH` | `master` | `dokku config:set` | Branch to deploy by default. |
| `DOKKU_DISABLE_PROXY` | none | `dokku proxy:disable` <br /> `dokku proxy:enable` | Disables the proxy in front of your application, resulting in publicly routing the docker container. |
| `DOKKU_DOCKER_STOP_TIMEOUT` | `10` | `dokku config:set` | Configurable grace period given to the `docker stop` command. If a container has not stopped by this time, a `kill -9` signal or equivalent is sent in order to force-terminate the container. Both the `ps:stop` and `apps:destroy` commands _also_ respect this value. If not specified, the docker defaults for the [docker stop command](https://docs.docker.com/engine/reference/commandline/stop/) will be used.|
| `DOKKU_DOCKERFILE_CMD` | dockerfile cmd | `dokku config:set` | |
| `DOKKU_DOCKERFILE_CACHE_BUILD` | none | `dokku config:set` | |
| `DOKKU_DOCKERFILE_ENTRYPOINT` | dockerfile entrypoint | `dokku config:set` | |
| `DOKKU_DOCKERFILE_PORTS` | dockerfile ports | `dokku config:set` | |
| `DOKKU_DOCKERFILE_START_CMD` | none | `dokku config:set` | |
| `DOKKU_NGINX_PORT` | automatically assigned | `dokku config:set` | |
| `DOKKU_NGINX_SSL_PORT` | automatically assigned | `dokku config:set` | |
| `DOKKU_PROXY_PORT_MAP` | automatically assigned | `dokku proxy:ports-add` <br /> `dokku proxy:ports-remove`, `dokku proxy:ports-clear` | |
| `DOKKU_SKIP_ALL_CHECKS` | none | `dokku config:set` | |
| `DOKKU_SKIP_CLEANUP` | | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | When a deploy is triggered, if this is set to a non-empty value, then old docker containers and images will not be removed. |
| `DOKKU_SKIP_DEFAULT_CHECKS` | | `dokku config:set` | |
| `DOKKU_SKIP_DEPLOY` | | `dokku config:set` | |
| `DOKKU_WAIT_TO_RETIRE` | `60` | `dokku config:set` | After a successful deploy, the grace period given to old containers before they are stopped/terminated. This is useful for ensuring completion of long-running http connections. |

View File

@@ -15,12 +15,33 @@ nginx:error-logs <app> [-t] # Show the nginx error logs for an appl
Dokku uses a templating library by the name of [sigil](https://github.com/gliderlabs/sigil) to generate nginx configuration for each app. You may also provide a custom template for your application as follows:
- Copy the following example template to a file named `nginx.conf.sigil` and either:
- check it into the root of your app repo for buildpack applications
- If using a buildpack application, you __must__ check it into the root of your app repo.
- `ADD` it to your dockerfile `WORKDIR`
- if your dockerfile has no `WORKDIR`, `ADD` it to the `/app` folder
> When using a custom `nginx.conf.sigil` file, depending upon your application configuration, you *may* be exposing the file externally. As this file is extracted before the container is run, you can, safely delete it in a custom `entrypoint.sh` configured in a Dockerfile `ENTRYPOINT`.
> The default template is available [here](https://github.com/dokku/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf.sigil), and can be used as a guide for your own, custom `nginx.conf.sigil` file. Please refer to the appropriate template file version for your Dokku version.
### Available template variables
```
{{ .APP }} Application name
{{ .APP_SSL_PATH }} Path to SSL certificate and key
{{ .DOKKU_ROOT }} Global Dokku root directory (ex: app dir would be `{{ .DOKKU_ROOT }}/{{ .APP }}`)
{{ .DOKKU_APP_LISTENERS }} List of IP:PORT pairs of app containers
{{ .NGINX_PORT }} Non-SSL nginx listener port (same as `DOKKU_NGINX_PORT` config var)
{{ .NGINX_SSL_PORT }} SSL nginx listener port (same as `DOKKU_NGINX_SSL_PORT` config var)
{{ .NOSSL_SERVER_NAME }} List of non-SSL VHOSTS
{{ .PROXY_PORT_MAP }} List of port mappings (same as `DOKKU_PROXY_PORT_MAP` config var)
{{ .PROXY_UPSTREAM_PORTS }} List of configured upstream ports (derived from `DOKKU_PROXY_PORT_MAP` config var)
{{ .RAW_TCP_PORTS }} List of exposed tcp ports as defined by Dockerfile `EXPOSE` directive (**Dockerfile apps only**)
{{ .SSL_INUSE }} Boolean set when an app is SSL-enabled
{{ .SSL_SERVER_NAME }} List of SSL VHOSTS
```
> Note: Application config variables are available for use in custom templates. To do so, use the form of `{{ var "FOO" }}` to access a variable named `FOO`.
### Example Custom Template
Use case: add an `X-Served-By` header to requests
@@ -64,26 +85,6 @@ upstream {{ .APP }} {
}
```
### Available template variables
```
{{ .APP }} Application name
{{ .APP_SSL_PATH }} Path to SSL certificate and key
{{ .DOKKU_ROOT }} Global Dokku root directory (ex: app dir would be `{{ .DOKKU_ROOT }}/{{ .APP }}`)
{{ .DOKKU_APP_LISTENERS }} List of IP:PORT pairs of app containers
{{ .NGINX_PORT }} Non-SSL nginx listener port (same as `DOKKU_NGINX_PORT` config var)
{{ .NGINX_SSL_PORT }} SSL nginx listener port (same as `DOKKU_NGINX_SSL_PORT` config var)
{{ .NOSSL_SERVER_NAME }} List of non-SSL VHOSTS
{{ .PROXY_PORT_MAP }} List of port mappings (same as `DOKKU_PROXY_PORT_MAP` config var)
{{ .PROXY_UPSTREAM_PORTS }} List of configured upstream ports (derived from `DOKKU_PROXY_PORT_MAP` config var)
{{ .RAW_TCP_PORTS }} List of exposed tcp ports as defined by Dockerfile `EXPOSE` directive (**Dockerfile apps only**)
{{ .SSL_INUSE }} Boolean set when an app is SSL-enabled
{{ .SSL_SERVER_NAME }} List of SSL VHOSTS
```
> Note: Application config variables are available for use in custom templates. To do so, use the form of `{{ var "FOO" }}` to access a variable named `FOO`.
### Example HTTP to HTTPS Custom Template
Use case: a simple dockerfile app that includes `EXPOSE 80`
@@ -101,6 +102,7 @@ server {
server {
listen [::]:443 ssl spdy;
listen 443 ssl spdy;
{{ if .NOSSL_SERVER_NAME }}server_name {{ .NOSSL_SERVER_NAME }}; {{ end }}
{{ if .SSL_SERVER_NAME }}server_name {{ .SSL_SERVER_NAME }}; {{ end }}
access_log /var/log/nginx/{{ .APP }}-access.log;
@@ -175,7 +177,6 @@ upstream {{ $.APP }}-{{ $upstream_port }} {
{{ range $listeners := $.DOKKU_APP_LISTENERS | split " " }}
{{ $listener_list := $listeners | split ":" }}
{{ $listener_ip := index $listener_list 0 }}
{{ $listener_port := index $listener_list 1 }}
server {{ $listener_ip }}:{{ $upstream_port }};{{ end }}
}
{{ end }}
@@ -193,45 +194,59 @@ That means you can put additional configuration in separate files, for example t
```shell
mkdir /home/dokku/myapp/nginx.conf.d/
echo 'client_max_body_size 50M;' > /home/dokku/myapp/nginx.conf.d/upload.conf
echo 'client_max_body_size 50m;' > /home/dokku/myapp/nginx.conf.d/upload.conf
chown dokku:dokku /home/dokku/myapp/nginx.conf.d/upload.conf
service nginx reload
```
The example above uses additional configuration files directly on the Dokku host. Unlike the `nginx.conf.sigil` file, these additional files will not be copied over from your application repo, and thus need to be placed in the `/home/dokku/myapp/nginx.conf.d/` directory manually.
For PHP Buildpack users, you will also need to provide a `Procfile` and an accompanying `nginx.conf` file to customize the nginx config *within* the container. The following are example contents for your `Procfile`
web: vendor/bin/heroku-php-nginx -C nginx.conf -i php.ini php/
Your `nginx.conf` file - not to be confused with Dokku's `nginx.conf.sigil` - would also need to be configured as shown in this example:
client_max_body_size 50m;
location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$args;
}
Please adjust the `Procfile` and `nginx.conf` file as appropriate.
## Domains plugin
See the [domain configuration documentation](/dokku/configuration/domains/).
See the [domain configuration documentation](/docs/configuration/domains.md).
## Customizing hostnames
See the [customizing hostnames documentation](/dokku/configuration/domains/#customizing-hostnames).
See the [customizing hostnames documentation](/docs/configuration/domains.md#customizing-hostnames).
## Disabling VHOSTS
See the [disabling vhosts documentation](/dokku/configuration/domains/#disabling-vhosts).
See the [disabling vhosts documentation](/docs/configuration/domains.md#disabling-vhosts).
## Default site
See the [default site documentation](/dokku/configuration/domains/#default-site).
See the [default site documentation](/docs/configuration/domains.md#default-site).
## Running behind a load balancer
See the [load balancer documentation](/dokku/configuration/ssl/#running-behind-a-load-balancer).
See the [load balancer documentation](/docs/configuration/ssl.md#running-behind-a-load-balancer).
## HSTS Header
See the [HSTS documentation](/dokku/configuration/ssl/#hsts-header).
See the [HSTS documentation](/docs/configuration/ssl.md#hsts-header).
## SSL Configuration
See the [ssl documentation](/dokku/configuration/ssl/).
See the [ssl documentation](/docs/configuration/ssl.md).
## Disabling Nginx
See the [proxy documentation](/dokku/advanced-usage/proxy-management/).
See the [proxy documentation](/docs/advanced-usage/proxy-management.md).
## Managing Proxy Port mappings
See the [proxy documentation](/dokku/advanced-usage/proxy-management/#proxy-port-mapping).
See the [proxy documentation](/docs/advanced-usage/proxy-management.md#proxy-port-mapping).

View File

@@ -17,7 +17,7 @@ certs:update <app> CRT KEY # Update an SSL Endpoint on an app. Can
dokku nginx:import-ssl <app> < certs.tar
```
> Adding an ssl certificate before deploying an application will result in port mappings being updated. This may cause issues for applications that use non-standard ports, as those may not be automatically detected. Please refer to the [proxy documentation](/dokku/advanced-usage/proxy-management/) for information as to how to reconfigure the mappings.
> Adding an ssl certificate before deploying an application will result in port mappings being updated. This may cause issues for applications that use non-standard ports, as those may not be automatically detected. Please refer to the [proxy documentation](/docs/advanced-usage/proxy-management.md) for information as to how to reconfigure the mappings.
## Per-application certificate management
@@ -40,9 +40,9 @@ cat yourdomain_com.crt yourdomain_com.ca-bundle > server.crt
#### SSL and Multiple Domains
When an SSL certificate is associated to an application, the certificate will be associated with *all* domains currently associated with said application. Your certificate _should_ be associated with all of those domains, otherwise accessing the application will result in SSL errors. If you wish to remove one of the domains from the application, refer to the [domain configuration documentation](/dokku/configuration/domains/).
When an SSL certificate is associated to an application, the certificate will be associated with *all* domains currently associated with said application. Your certificate _should_ be associated with all of those domains, otherwise accessing the application will result in SSL errors. If you wish to remove one of the domains from the application, refer to the [domain configuration documentation](/docs/configuration/domains.md).
Note that with the default nginx template, requests will be redirected to the `https` version of the domain. If this is not the desired state of request resolution, you may customize the nginx template in use. For more details, see the [nginx documentation](/dokku/configuration/nginx/).
Note that with the default nginx template, requests will be redirected to the `https` version of the domain. If this is not the desired state of request resolution, you may customize the nginx template in use. For more details, see the [nginx documentation](/docs/configuration/nginx.md).
### Certificate generation
@@ -117,11 +117,15 @@ The [HSTS header](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security)
Beware that if you enable the header and a subsequent deploy of your application results in an HTTP deploy (for whatever reason), the way the header works means that a browser will not attempt to request the HTTP version of your site if the HTTPS version fails.
## HTTP/2 support
Certain versions of nginx have bugs that prevent [HTTP/2](https://nginx.org/en/docs/http/ngx_http_v2_module.html) from properly responding to all clients, thus causing applications to be unavailable. For HTTP/2 to be enabled in your applications' nginx configs, you need to have installed nginx 1.11.5 or higher. See [issue 2435](https://github.com/dokku/dokku/issues/2435) for more details.
## Running behind a load balancer
Your application has access to the HTTP headers `X-Forwarded-Proto`, `X-Forwarded-Port` and `X-Forwarded-For`. These headers indicate the protocol of the original request (HTTP or HTTPS), the port number, and the IP address of the client making the request, respectively. The default configuration is for Nginx to set these headers.
If your server runs behind an HTTP/S load balancer, then Nginx will see all requests as coming from the load balancer. If your load balancer sets the `X-Forwarded-` headers, you can tell Nginx to pass these headers from load balancer to your application by using the following [nginx custom template](/dokku/configuration/nginx/#customizing-the-nginx-configuration)
If your server runs behind an HTTP/S load balancer, then Nginx will see all requests as coming from the load balancer. If your load balancer sets the `X-Forwarded-` headers, you can tell Nginx to pass these headers from load balancer to your application by using the following [nginx custom template](/docs/configuration/nginx.md#customizing-the-nginx-configuration)
```go
server {
@@ -162,4 +166,4 @@ This could result in security issue, for example, if your application looks at t
### SSL Port Exposure
When your app is served from port `80` then the `/home/dokku/APP/nginx.conf` file will automatically be updated to instruct nginx to respond to ssl on port 443 as a new cert is added. If your app uses a non-standard port (perhaps you have a dockerfile deploy exposing port `99999`) you may need to manually expose an ssl port via `dokku proxy:ports-add <APP> https:443:99999`.
When your app is served from port `80` then the `/home/dokku/APP/nginx.conf` file will automatically be updated to instruct nginx to respond to ssl on port 443 as a new cert is added. If your app uses a non-standard port (perhaps you have a dockerfile deploy exposing port `99999`) you may need to manually expose an ssl port via `dokku proxy:ports-add <APP> https:443:99999`.

View File

@@ -21,7 +21,7 @@ dokku apps:create ruby-rails-sample
### Create the backing services
When you create a new app, Dokku by default *does not* provide any datastores such as MySQL or PostgreSQL. You will need to install plugins to handle that, but fortunately [Dokku has official plugins](/dokku/community/plugins/#official-plugins-beta) for common datastores. Our sample app requires a PostgreSQL service:
When you create a new app, Dokku by default *does not* provide any datastores such as MySQL or PostgreSQL. You will need to install plugins to handle that, but fortunately [Dokku has official plugins](/docs/community/plugins.md#official-plugins-beta) for common datastores. Our sample app requires a PostgreSQL service:
```shell
# on your Dokku host
@@ -33,7 +33,7 @@ sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
dokku postgres:create rails-database
```
> Each services may take a few moments to create.
> Each service may take a few moments to create.
### Linking backing services to applications
@@ -59,6 +59,10 @@ git remote add dokku dokku@dokku.me:ruby-rails-sample
git push dokku master
```
> Note: Some tools may not support the short-upstream syntax referenced above, and you may need to prefix
> the upstream with the scheme `ssh://` like so: `ssh://dokku@dokku.me:ruby-rails-sample`
> Please see the [Git](https://git-scm.com/docs/git-clone#_git_urls_a_id_urls_a) documentation for more details.
```
Counting objects: 231, done.
Delta compression using up to 8 threads.
@@ -105,7 +109,7 @@ dokku config:set --global DOKKU_DEPLOY_BRANCH=some-branch
dokku config:set ruby-rails-sample DOKKU_DEPLOY_BRANCH=some-branch
```
You can also support pushing multiple branches using the [receive-branch](/dokku/development/plugin-triggers/#receive-branch) plugin trigger in a custom plugin.
You can also support pushing multiple branches using the [receive-branch](/docs/development/plugin-triggers.md#receive-branch) plugin trigger in a custom plugin.
### Skipping deployment
@@ -125,7 +129,7 @@ If you need to re-deploy (or restart) your app:
dokku ps:rebuild ruby-rails-sample
```
See the [process scaling documentation](/dokku/deployment/process-management) for more information.
See the [process scaling documentation](/docs/deployment/process-management.md) for more information.
### Deploying with private git submodules
@@ -192,32 +196,32 @@ As of 0.5.x, this function removes all containers with the label `dokku` where t
## Adding deploy users
See the [user management documentation](/dokku/deployment/user-management).
See the [user management documentation](/docs/deployment/user-management.md).
## Default vhost
See the [nginx documentation](/dokku/configuration/nginx/#default-site).
See the [nginx documentation](/docs/configuration/nginx.md#default-site).
## Dockerfile deployment
See the [dockerfile documentation](/dokku/deployment/methods/dockerfiles/).
See the [dockerfile documentation](/docs/deployment/methods/dockerfiles.md).
## Specifying a custom buildpack
See the [buildpack documentation](/dokku/deployment/methods/buildpacks/).
See the [buildpack documentation](/docs/deployment/methods/buildpacks.md).
## Image tagging
See the [image tagging documentation](/dokku/deployment/methods/images/).
See the [image tagging documentation](/docs/deployment/methods/images.md).
## Removing a deployed app
See the [application management documentation](/dokku/deployment/application-management/#removing-a-deployed-app).
See the [application management documentation](/docs/deployment/application-management.md#removing-a-deployed-app).
### Renaming a deployed app
See the [application management documentation](/dokku/deployment/application-management/#renaming-a-deployed-app).
See the [application management documentation](/docs/deployment/application-management.md#renaming-a-deployed-app).
## Zero downtime deploy
See the [zero-downtime deploy documentation](/dokku/deployment/zero-downtime-deploys/).
See the [zero-downtime deploy documentation](/docs/deployment/zero-downtime-deploys.md).

View File

@@ -121,7 +121,7 @@ This will copy all of your app's contents into a new app directory with the name
> New as of 0.8.1
You can clone an existing app using the `apps:clone` command. Note that the application *must* have been deployed at least once, or the rename will not complete successfully:
You can clone an existing app using the `apps:clone` command. Note that the application *must* have been deployed at least once, or cloning will not complete successfully:
```shell
dokku apps:clone node-js-app io-js-app

View File

@@ -4,7 +4,7 @@ Dokku normally defaults to using [heroku buildpacks](https://devcenter.heroku.co
- Use `dokku config:set` to set the `BUILDPACK_URL` environment variable.
- Add `BUILDPACK_URL` to a committed `.env` file in the root of your repository.
- See the [environment variable documentation](/dokku/configuration/environment-variables/) for more details.
- See the [environment variable documentation](/docs/configuration/environment-variables.md) for more details.
- Create a `.buildpacks` file in the root of your repository.
## Specifying a custom buildpack
@@ -56,7 +56,7 @@ dokku config:set node-js-app BUILDPACK_URL=https://github.com/heroku/heroku-buil
## Specifying commands via Procfile
While many buildpacks have a default command that is run when a detected repository is pushed, it is possible to override this command via a Procfile. A Procfile can also be used to specify multiple commands, each of which is subject to process scaling. See the [process scaling documentation](/dokku/deployment/process-management/) for more details around scaling individual processes.
While many buildpacks have a default command that is run when a detected repository is pushed, it is possible to override this command via a Procfile. A Procfile can also be used to specify multiple commands, each of which is subject to process scaling. See the [process scaling documentation](/docs/deployment/process-management.md) for more details around scaling individual processes.
A Procfile is a file named `Procfile`. It should be named `Procfile` exactly, and not anything else. For example, `Procfile.txt` is not valid. The file should be a simple text file.
@@ -77,7 +77,7 @@ worker: env QUEUE=* bundle exec rake resque:work
importantworker: env QUEUE=important bundle exec rake resque:work
```
The `web` process type holds some significance in that it is the only process type that is automatically scaled to `1` on the initial application deploy. See the [process scaling documentation](/dokku/deployment/process-management/) for more details around scaling individual processes.
The `web` process type holds some significance in that it is the only process type that is automatically scaled to `1` on the initial application deploy. See the [process scaling documentation](/docs/deployment/process-management.md) for more details around scaling individual processes.
## Curl Build Timeouts
@@ -87,9 +87,9 @@ If you see output similar this when deploying , you may need to override the cur
```shell
dokku config:set --global CURL_TIMEOUT=600
dokku config:set --global CURL_CONNECT_TIMEOUT=30
dokku config:set --global CURL_CONNECT_TIMEOUT=180
```
## Clearing buildpack cache
See the [repository management documentation](/dokku/advanced-usage/repository-management/#clearing-app-cache).
See the [repository management documentation](/docs/advanced-usage/repository-management.md#clearing-app-cache).

View File

@@ -6,7 +6,7 @@ While Dokku normally defaults to using [heroku buildpacks](https://devcenter.her
> Dockerfile support is considered a **Power User** feature. By using Dockerfile-based deployment, you agree that you will not have the same comfort as that enjoyed by Buildpack users, and Dokku features may work differently. Differences between the two systems will be documented here.
To use a dockerfiles for deployment, commit a valid `Dockerfile` to the root of your repository and push the repository to your Dokku installation. If this file is detected, Dokku will default to using it to construct containers **except** in the following two cases:
To use a dockerfile for deployment, commit a valid `Dockerfile` to the root of your repository and push the repository to your Dokku installation. If this file is detected, Dokku will default to using it to construct containers **except** in the following two cases:
- The application has a `BUILDPACK_URL` environment variable set via the `dokku config:set` command or in a committed `.env` file. In this case, Dokku will use your specified buildpack.
- The application has a `.buildpacks` file in the root of the repository. In this case, Dokku will use your specified buildpack(s).
@@ -17,11 +17,52 @@ To use a dockerfiles for deployment, commit a valid `Dockerfile` to the root of
Dokku will extract all tcp ports exposed using the `EXPOSE` directive (one port per line) and setup nginx to proxy the same port numbers to listen publicly. If you would like to change the exposed port, you should do so within your `Dockerfile` and app.
> Note: Nginx does not support proxying UDP. UDP ports can be exposed by disabling the nginx proxy with `dokku proxy:disable myapp`
> Note: If ports are specified via `EXPOSE` in your `Dockerfile`, we will proxy requests to the first port specified. Your application must be configured to listen on that port.
If you do not explicitly `EXPOSE` a port in your `Dockerfile`, Dokku will configure the nginx proxy to listen on port 80 (and 443 for TLS) and forward traffic to your app listening on port 5000 inside the container. Just like buildpack apps, you can also use the `$PORT` environment variable in your app to maintain portability.
When ports are exposed through the default nginx proxy, they are proxied externally as HTTP ports. At this time, in no case do we proxy plain TCP or UDP ports. If you would like to investigate alternative proxy methods, please refer to our [proxy management documentation](/dokku/advanced-usage/proxy-management/).
When ports are exposed through the default nginx proxy, they are proxied externally as HTTP ports. At this time, in no case do we proxy plain TCP or UDP ports. Nginx does not support proxying UDP. UDP ports can be exposed by disabling the nginx proxy with `dokku proxy:disable myapp`. If you would like to investigate alternative proxy methods, please refer to our [proxy management documentation](/docs/advanced-usage/proxy-management.md).
## Build-time Configuration Variables
For security reasons - and as per [docker recommendations](https://github.com/docker/docker/issues/13490) - Dockerfile-based deploys have variables available only during runtime.
For users that require customization in the `build` phase, you may use build arguments via the [docker-options plugin](docs/advanced-usage/docker-options.md):
```shell
dokku docker-options:add node-js-app build '--build-arg NODE_ENV=production'
```
Once set, the Dockerfile usage would be as follows:
```Dockerfile
FROM debian:jessie
# set the argument default
ARG NODE_ENV=production
# use the argument
RUN echo $NODE_ENV
```
You may also set the argument as an environment variable
```Dockerfile
FROM debian:jessie
# set the argument default
ARG NODE_ENV=production
# assign it to an environment variable
# we can wrap the variable in brackets
ENV NODE_ENV ${NODE_ENV}
# or omit them completely
# use the argument
RUN echo $NODE_ENV
```
## Customizing the run command

View File

@@ -1,4 +1,4 @@
# Image Tag Deployment
# Docker Image Tag Deployment
> New as of 0.4.0
@@ -162,3 +162,8 @@ docker save dokku/test-app:v12 | bzip2 | ssh my.dokku.host "bunzip2 | docker loa
# tag and deploy the image
ssh my.dokku.host "dokku tags:create test-app previous; dokku tags:deploy test-app v12 && dokku tags:create test-app latest"
```
## Related articles
- [Setting up Persistent Storage](/docs/advanced-usage/persistent-storage.md)
- [Defining Environment Variables](/docs/configuration/environment-variables.md)
- [Setting up the Ports](/docs/advanced-usage/proxy-management.md)

View File

@@ -16,7 +16,7 @@ ps:start <app> # Start app container(s)
ps:stop <app> # Stop app container(s)
```
By default, Dokku will only start a single `web` process - if defined - though process scaling can be managed by the `ps` plugin or [via a custom `DOKKU_SCALE` file](/dokku/deployment/process-management/#manually-managing-process-scaling).
By default, Dokku will only start a single `web` process - if defined - though process scaling can be managed by the `ps` plugin or [via a custom `DOKKU_SCALE` file](/docs/deployment/process-management.md#manually-managing-process-scaling).
> The `web` proctype is the only proctype that will invoke custom checks as defined by a CHECKS file. It is also the only process type that will be launched in a container that is either proxied via nginx or bound to an external port.
@@ -46,7 +46,7 @@ dokku ps:rebuildall
> The `ps:rebuild` and `ps:rebuildall` commands only work for applications for which there is a source, and thus
> will only always work deterministically for git-deployed application. Please see
> the [images documentation](/dokku/deployment/methods/images/) and [tar documentation](/dokku/deployment/methods/tar/)
> the [images documentation](/docs/deployment/methods/images.md) and [tar documentation](/docs/deployment/methods/tar.md)
> in for more information concerning rebuilding those applications.
### Restarting applications
@@ -93,7 +93,7 @@ dokku ps:scale node-js-app
### Stopping applications
Deployed applications can be stopped using the `ps:stop` command. This turns all running containers for an application, and will result in a `502 Bad Gateway` response for the default nginx proxy implementation.
Deployed applications can be stopped using the `ps:stop` command. This turns off all running containers for an application, and will result in a `502 Bad Gateway` response for the default nginx proxy implementation.
```shell
dokku ps:stop node-js-app
@@ -115,7 +115,7 @@ By default, Dokku will automatically restart containers that exit with a non-zer
### Showing the current restart policy
THe `ps:restart-policy` command will show the currently configured restart policy for an application. The default policy is `on-failure:10`
The `ps:restart-policy` command will show the currently configured restart policy for an application. The default policy is `on-failure:10`
```shell
dokku ps:restart-policy node-js-app

View File

@@ -25,4 +25,4 @@ in order to avoid ssh interpretting Dokku arguments for itself.
You may optionally use a client to connect to your Dokku server. Most clients use the configured `git remote` to locate the Dokku server, though some allow for overriding this via an environment variable or flag.
Please refer to the [clients](/dokku/community/clients/) list for more details.
Please refer to the [clients](/docs/community/clients.md) list for more details.

View File

@@ -46,7 +46,7 @@ dokku ssh-keys:add KEY_NAME path/to/id_rsa.pub
b7:76:27:4f:30:90:21:ae:d4:1e:70:20:35:3f:06:d6
```
`KEY_NAME` is the username prefer to use to refer to this particular key. Including the word `admin` in the name will grant the user privileges to add additional keys remotely.
`KEY_NAME` is the name you want to use to refer to this particular key. Including the word `admin` in the name will grant the user privileges to add additional keys remotely.
> `KEY_NAME` is a unique name which is used to identify public keys. Attempting to re-use a key name will result in an error. The ssh (git) user is *always* `dokku`, as this is the system user that the `dokku` binary uses to perform all it's actions.
@@ -79,7 +79,7 @@ dokku ssh-keys:remove KEY_NAME
## Scoping commands to specific users
Keys are given unique names, which can be used in conjunction with the [user-auth](/dokku/development/plugin-triggers/#user-auth) plugin trigger to handle command authorization. Please see the documentation on that trigger for more information.
Keys are given unique names, which can be used in conjunction with the [user-auth](/docs/development/plugin-triggers.md#user-auth) plugin trigger to handle command authorization. Please see the documentation on that trigger for more information.
## Granting other Unix user accounts Dokku access

View File

@@ -1,13 +1,13 @@
# Plugin Creation
Plugins can simply be implementations of [triggers](/dokku/development/plugin-triggers) or they may implement a command structure of their own. Dokku has no restrictions on the language in which a plugin is implemented, it only cares that the plugin implements the appropriate [commands](/dokku/development/plugin-creation#command-api) or [triggers](/dokku/development/plugin-triggers) API. NOTE: all files that implement the triggers or commands API must be executable.
Plugins can simply be implementations of [triggers](/docs/development/plugin-triggers.md) or they may implement a command structure of their own. Dokku has no restrictions on the language in which a plugin is implemented, it only cares that the plugin implements the appropriate [commands](/docs/development/plugin-creation.md#command-api) or [triggers](/docs/development/plugin-triggers.md) API. NOTE: all files that implement the triggers or commands API must be executable.
If you create your own plugin:
1. Take a look at the plugins shipped with Dokku and hack away!
2. Check out the [list of triggers](/dokku/development/plugin-triggers) your plugin can implement.
2. Check out the [list of triggers](/docs/development/plugin-triggers.md) your plugin can implement.
3. Upload your plugin to github with a repository name in form of `dokku-<name>` (e.g. `dokku-mariadb`)
4. Edit [this page](/dokku/community/plugins/) and add a link to it.
4. Edit [this page](/docs/community/plugins.md) and add a link to it.
5. Subscribe to the [dokku development blog](http://progrium.com) to be notified about API changes and releases
@@ -173,6 +173,6 @@ A few notes:
dokku config:unset --no-restart node-js-app KEY1 [KEY2 ...]
```
- From time to time you may want to allow other plugins access to (some of) your plugin's functionality. You can expose this by including a `functions` file in your plugin for others to source. Consider all functions in that file to be publicly accessible by other plugins. Any functions not wished to be made "public" should reside within your plugin trigger or commands files.
- As of 0.4.0, we allow image tagging and deployment of said tagged images. Therefore, hard-coding of `$IMAGE` as `dokku/$APP` is no longer sufficient. Instead, for non `pre/post-build-*` plugins, use `get_running_image_tag()` & `get_app_image_name()` as sourced from common/functions. See the [plugin triggers](/dokku/development/plugin-triggers) doc for examples.
- As of 0.4.0, we allow image tagging and deployment of said tagged images. Therefore, hard-coding of `$IMAGE` as `dokku/$APP` is no longer sufficient. Instead, for non `pre/post-build-*` plugins, use `get_running_image_tag()` & `get_app_image_name()` as sourced from common/functions. See the [plugin triggers](/docs/development/plugin-triggers.md) doc for examples.
- As of 0.5.0, we use container labels to help cleanup intermediate containers with `dokku cleanup`. If manually calling `docker run`, include `$DOKKU_GLOBAL_RUN_ARGS`. This will ensure you intermediate containers labeled correctly.
- As of 0.6.0, we advise you to *not* call the `dokku` binary directly from within plugins. Clients using the `--app` argument are potentially broken, amongst other issues, when doing so. Instead, please source the `functions` file for a given plugin when attempting to call Dokku internal functions

View File

@@ -259,7 +259,7 @@ cache-bust-build-arg "$@"
- Description:
- Invoked by: `dokku deploy`
- Arguments: `$APP $IMAGE_TAG`
- Arguments: `$APP $IMAGE_TAG [$PROC_TYPE $CONTAINER_INDEX]`
- Example:
```shell
@@ -344,6 +344,141 @@ if [[ ! -f "$DOKKU_ROOT/HOSTNAME" ]]; then
fi
```
### `network-build-config`
- Description: Rebuilds network configuration
- Invoked by: `internally triggered by proxy-build-config within proxy implementations`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-compute-ports`
- Description: Computes the ports for a given app container
- Invoked by: `internally triggered by proxy-build-config within proxy implementations`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-config-exists`
- Description: Returns whether the network configuration for a given app exists
- Invoked by: `internally triggered by core-post-deploy within proxy implementations`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-get-ipaddr`
- Description: Return the ipaddr for a given app container
- Invoked by: `internally triggered by a deploy`
- Arguments: `$APP $PROC_TYPE $CONTAINER_ID`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-get-listeners`
- Description: Return the listeners (host:port combinations) for a given app container
- Invoked by: `internally triggered by a deploy`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-get-property`
- Description: Return the network value for an application's property
- Invoked by: `internally triggered by a deploy`
- Arguments: `$APP $KEY`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-get-port`
- Description: Return the port for a given app container
- Invoked by: `internally triggered by a deploy`
- Arguments: `$APP $PROC_TYPE $CONTAINER_ID $IS_HEROKUISH_CONTAINER`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-write-ipaddr`
- Description: Write the ipaddr for a given app index
- Invoked by: `internally triggered by a deploy`
- Arguments: `$APP $PROC_TYPE $CONTAINER_INDEX $IP_ADDRESS`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `network-write-port`
- Description: Write the port for a given app index
- Invoked by: `internally triggered by a deploy`
- Arguments: `$APP $PROC_TYPE $CONTAINER_INDEX $PORT`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `nginx-hostname`
- Description: Allows you to customize the hostname for a given application.
@@ -410,6 +545,40 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `post-certs-remove`
- Description: Allows you to run commands after a cert is removed
- Invoked by: `dokku certs:remove`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
APP="$1"; verify_app_name "$APP"
# TODO
```
### `post-certs-update`
- Description: Allows you to run commands after a cert is added/updated
- Invoked by: `dokku certs:add`, `dokku certs:update`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
APP="$1"; verify_app_name "$APP"
# TODO
```
### `post-create`
- Description: Can be used to run commands after an application is created.
@@ -763,10 +932,10 @@ APP="$1"; verify_app_name "$APP"
# TODO
```
### `post-certs-update`
### `proxy-build-config`
- Description: Allows you to run commands after a cert is added/updated
- Invoked by: `dokku certs:add`, `dokku certs:update`
- Description: Builds the proxy implementation configuration for a given app
- Invoked by: `internally triggered by ps:restore`
- Arguments: `$APP`
- Example:
@@ -774,16 +943,29 @@ APP="$1"; verify_app_name "$APP"
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
APP="$1"; verify_app_name "$APP"
# TODO
```
### `post-certs-remove`
### `proxy-enable`
- Description: Allows you to run commands after a cert is removed
- Invoked by: `dokku certs:remove`
- Description: Enables the configured proxy implementation for an app
- Invoked by: `internally triggered by ps:restore`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `proxy-disable`
- Description: Disables the configured proxy implementation for an app
- Invoked by: `internally triggered by ps:restore`
- Arguments: `$APP`
- Example:
@@ -791,8 +973,6 @@ APP="$1"; verify_app_name "$APP"
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
APP="$1"; verify_app_name "$APP"
# TODO
```
@@ -833,7 +1013,7 @@ newrev=$2
APP=${refname/*\//}.$reference_app
if [[ ! -d "$DOKKU_ROOT/$APP" ]]; then
REFERENCE_REPO="$DOKKU_ROOT/$reference_app
REFERENCE_REPO="$DOKKU_ROOT/$reference_app"
git clone --bare --shared --reference "$REFERENCE_REPO" "$REFERENCE_REPO" "$DOKKU_ROOT/$APP" > /dev/null
fi
plugn trigger receive-app $APP $newrev
@@ -889,7 +1069,7 @@ docker push $DOCKER_HUB_USER/$APP:$IMAGE_TAG
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
APP="$1"; IMAGE_TAG="$2"
some code to remove a docker hub tag because it's not implemented in the CLI....
# some code to remove a docker hub tag because it's not implemented in the CLI...
```
### `uninstall`
@@ -899,16 +1079,16 @@ some code to remove a docker hub tag because it's not implemented in the CLI....
- Arguments: `$PLUGIN`
- Example:
```shell
#!/usr/bin/env bash
# Cleanup up extra containers created
```shell
#!/usr/bin/env bash
# Cleanup up extra containers created
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
PLUGIN="$1"
PLUGIN="$1"
[[ "$PLUGIN" = "my-plugin" ]] && docker rmi -f "${PLUGIN_IMAGE_DEPENDENCY}"
```
[[ "$PLUGIN" = "my-plugin" ]] && docker rmi -f "${PLUGIN_IMAGE_DEPENDENCY}"
```
> To avoid uninstalling other plugins make sure to check the plugin name like shown in the example.

View File

@@ -67,7 +67,7 @@ The workflow looks like this:
```shell
# having dokku-arch in ../dokku-arch
vagrant up build-arch
# wait for "==> build-arch: ==> Finished making: dokku 0.9.2-2 (Mon Feb 22 23:20:37 CET 2016)"
# wait for "==> build-arch: ==> Finished making: dokku 0.11.2-2 (Mon Feb 22 23:20:37 CET 2016)"
cd ../dokku-arch
git add PKGBUILD .SRCINFO
git commit -m 'Update to dokku 0.9.9'

View File

@@ -17,7 +17,7 @@ While we do provide official packages for a variety of platforms, as our test su
## Local Test Execution
- Setup Dokku in a [vagrant vm](/dokku/getting-started/install/vagrant)
- Setup Dokku in a [vagrant vm](/docs/getting-started/install/vagrant.md)
- Run the following to setup tests and execute them:
```shell

View File

@@ -44,6 +44,10 @@ cd dokku
sudo BUILD_STACK=true STACK_URL=https://github.com/gliderlabs/herokuish.git make install
```
## Skipping herokuish installation
The `herokuish` package is recommended but not required if not using Heroku Buildpacks for deployment. Debian-based OS users can run the bootstrap installer via `sudo DOKKU_NO_INSTALL_RECOMMENDS=true bash bootstrap.sh` to skip the dependency. Please note that this will _also_ skip installation of other recommended dependencies.
## Configuring
Once Dokku is installed, if you are not using the web-installer, you'll want to configure a the virtualhost setup as well as the push user. If you do not, your installation will be considered incomplete and you will not be able to deploy applications.
@@ -52,7 +56,7 @@ Once Dokku is installed, if you are not using the web-installer, you'll want to
Set up a domain and a wildcard domain pointing to that host. Make sure `/home/dokku/VHOST` is set to this domain. By default it's set to whatever hostname the host has. This file is only created if the hostname can be resolved by dig (`dig +short $(hostname -f)`). Otherwise you have to create the file manually and set it to your preferred domain. If this file still is not present when you push your app, Dokku will publish the app with a port number (i.e. `http://example.com:49154` - note the missing subdomain).
Follow the [user management documentation](/dokku/deployment/user-management/) in order to add users to Dokku, or to give other Unix accounts access to Dokku.
Follow the [user management documentation](/docs/deployment/user-management.md) in order to add users to Dokku, or to give other Unix accounts access to Dokku.
That's it!

View File

@@ -35,7 +35,7 @@ After setting the desired options, proceed with the installation as described ab
| Name | Type | Default | Description |
| ------------------ | ------- | --------------------- | ------------------------------------------------------------------------ |
| dokku/web_config | boolean | true | Use web-based config for below options |
| dokku/vhost_enable | boolean | false | Use vhost-based deployments (e.g. <app>.dokku.me) |
| dokku/vhost_enable | boolean | false | Use vhost-based deployments (e.g., <app>.dokku.me) |
| dokku/hostname | string | dokku.me | Hostname, used as vhost domain and for showing app URL after deploy |
| dokku/skip_key_file| boolean | false | Don't check for the existence of the dokku/key_file. Warning: This setting this to true, will require you to manually add an SSH key later on. |
| dokku/skip_key_file| boolean | false | Don't check for the existence of the dokku/key_file. Warning: Setting this to true, will require you to manually add an SSH key later on. |
| dokku/key_file | string | /root/.ssh/id_rsa.pub | Path on disk to an SSH key to add to the Dokku user (Will be ignored on `dpkg-reconfigure`) |

View File

@@ -1,11 +1,22 @@
# Digital Ocean
# Digital Ocean Droplet
On Digital Ocean, there is a pre-made image that can be run for Dokku. You can choose to run this image on any sized droplet, though larger droplets will allow you to run larger applications.
[Digital Ocean](https://www.digitalocean.com/products/compute/) offers a pre-installed Dokku image. You can run this image on any sized droplet, although larger droplets will allow you to run larger applications.
When choosing your Droplet configuration, please disable IPv6 on the droplet. There are known issues with IPv6 on Digital Ocean and Docker, and many have been reported to the Dokku issue tracker.
> **Please disable IPv6**. There are known issues with IPv6 on Digital Ocean and Docker. If you would like to run Dokku on an IPv6 Digital Ocean Droplet, please consult [this guide](https://jeffloughridge.wordpress.com/2015/01/17/native-ipv6-functionality-in-docker/).
If you would like to run Dokku on an IPv6 Digital Ocean Droplet, please consult [this guide](https://jeffloughridge.wordpress.com/2015/01/17/native-ipv6-functionality-in-docker/) for modifying Docker to run under the Digital Ocean IPv6 configuration.
Once Dokku is installed, you can then proceed to the ip address or domain name associated with your server to complete the web-based installation.
If you wish for a more unattended installation method, see [these](http://dokku.viewdocs.io/dokku/getting-started/install/debian/#unattended-installation) docs.
1. Login to your [Digital Ocean](https://m.do.co/c/fe06b043a083) account
2. Click **Create a Droplet**.
3. Under **Choose an image > One-click apps** and choose the latest **Dokku** release for 16.04 _(version numbers may vary)_.
4. Under **Choose a size** and select your a machine spec. We recommend a machine with _at least_ 1GB of memory.
5. Under **Choose a datacenter region** select your region.
6. Add an SSH Key
* New Keys
1. Under **Add your SSH keys** click **New SSH Key** _(this opens a dialog)_
2. From your terminal, execute `cat $HOME/.ssh/id_rsa.pub`
3. Copy the output and paste it into the **New SSH Key** dialog, provide a name and click **Add SSH Key**
* Existing Keys
1. Simply add a checkmark next to the existing keys you'd like to add.
7. Under **Finalize and create**, give your droplet a hostname _(not required)_ and click **Create**.
8. Once created, copy the IP address to your clipboard.
9. In a browser, go to the IP address you copied above and fill out the presented form to complete configuration. **Failure to do so may allow others to reconfigure SSH access on your server.**
10. Once the web ui has been submitted, you will be redirected to our [application deployment tutorial](/docs/deployment/application-deployment.md), which will guide you through deploying a sample application to your Dokku server.

View File

@@ -2,7 +2,7 @@
> New as of 0.8.0 *(experimental)*
>**Warning:** Web installer is not available on CentOS. You will need to configure [SSH keys](/dokku/deployment/user-management/#adding-ssh-keys) and [virtual hosts](/dokku/configuration/domains/#customizing-hostnames) using dokku command line interface.
>**Warning:** Web installer is not available on CentOS. You will need to configure [SSH keys](/docs/deployment/user-management.md#adding-ssh-keys) and [virtual hosts](/docs/configuration/domains.md#customizing-hostnames) using dokku command line interface.
Dokku defaults to being installed via RPM package on CentOS 7. While certain hosts may require extra work to get running, you may optionally wish to automate the installation of Dokku without the use of our `bootstrap.sh` bash script. The following are the steps run by said script:

View File

@@ -19,8 +19,14 @@
# - `DOKKU_IP`
# - `FORWARDED_PORT`.
cd path/to/dokku
# for most users
vagrant up
# windows users must instead use the following
vagrant up dokku-windows
```
- Setup SSH Config in `~/.ssh/config`.
```ini

View File

@@ -21,39 +21,43 @@ To install the latest stable version of dokku, you can run the following shell c
```shell
# for debian systems, installs Dokku via apt-get
wget https://raw.githubusercontent.com/dokku/dokku/v0.9.2/bootstrap.sh;
sudo DOKKU_TAG=v0.9.2 bash bootstrap.sh
wget https://raw.githubusercontent.com/dokku/dokku/v0.11.2/bootstrap.sh;
sudo DOKKU_TAG=v0.11.2 bash bootstrap.sh
```
The installation process takes about 5-10 minutes, depending upon internet connection speed.
If you're using Debian 8 or Ubuntu 14.04, make sure your package manager is configured to install a sufficiently recent version of nginx<sup>[3]</sup>, otherwise, the installation may fail due to "unmet dependencies" relating nginx.
#### 2. Setup SSH key and Virtualhost Settings
Once the installation is complete, you can open a browser to setup your SSH key and virtualhost settings. Open your browser of choice and navigate to the host's IP address - or the domain you assigned to that IP previously - and configure Dokku via the web admin.
>**Warning:** If you don't complete setup via the web installer (even if you set up SSH keys and virtual hosts otherwise) your Dokku installation will remain vulnerable to anyone finding the setup page and inserting their key.
> **Warning:** If you don't complete setup via the web installer (even if you set up SSH keys and virtual hosts otherwise) your Dokku installation will remain vulnerable to anyone finding the setup page and inserting their key.
>**Warning:** Web installer is not available on CentOS and Arch Linux. You will need to configure [SSH keys](/dokku/deployment/user-management/#adding-ssh-keys) and [virtual hosts](/dokku/configuration/domains/#customizing-hostnames) using dokku command line interface.
> **Warning:** Web installer is not available on CentOS and Arch Linux. You will need to configure [SSH keys](/docs/deployment/user-management.md#adding-ssh-keys) and [virtual hosts](/docs/configuration/domains.md#customizing-hostnames) using dokku command line interface.
#### 3. Deploy your first application
Once you save your settings, the web admin will self-terminate and you should be able to run or deploy to the Dokku installation.
### Installing via other methods
For various reasons, certain hosting providers may have other steps that should be preferred to the above. If hosted on any of the following popular hosts, please follow the linked to instructions:
- [Digital Ocean Installation Notes](/dokku/getting-started/install/digitalocean)
- [DreamHost Cloud Installation Notes](/dokku/getting-started/install/dreamhost/)
- [Microsoft Azure Installation Notes](/dokku/getting-started/install/azure/)
- [Digital Ocean Installation Notes](/docs/getting-started/install/digitalocean.md)
- [DreamHost Cloud Installation Notes](/docs/getting-started/install/dreamhost.md)
- [Microsoft Azure Installation Notes](/docs/getting-started/install/azure.md)
As well, you may wish to customize your installation in some other fashion. or experiment with vagrant. The guides below should get you started:
- [Debian Package Installation Notes](/dokku/getting-started/install/debian/)
- [RPM Package Installation Notes](/dokku/getting-started/install/rpm/)
- [Vagrant Installation Notes](/dokku/getting-started/install/vagrant/)
- [Advanced Install Customization](/dokku/getting-started/advanced-installation/)
- [Debian Package Installation Notes](/docs/getting-started/install/debian.md)
- [RPM Package Installation Notes](/docs/getting-started/install/rpm.md)
- [Vagrant Installation Notes](/docs/getting-started/install/vagrant.md)
- [Advanced Install Customization](/docs/getting-started/advanced-installation.md)
---
- <sup>[1]: To check whether your system has an fqdn set, run `sudo hostname -f`</sup>
- <sup>[2]: If your system has less than 1GB of memory, you can use [this workaround](/dokku/getting-started/advanced-installation/#vms-with-less-than-1gb-of-memory).</sup>
- <sup>[2]: If your system has less than 1GB of memory, you can use [this workaround](/docs/getting-started/advanced-installation.md#vms-with-less-than-1gb-of-memory).</sup>
- <sup>[3]: nginx >= 1.8.0 can be installed via the [nginx repositories](https://www.nginx.com/resources/admin-guide/installing-nginx-open-source/), or by adding [this PPA](https://launchpad.net/~nginx/+archive/ubuntu/stable) if you're using Ubuntu. nginx >= 1.11.5 is necessary for HTTP/2 support</sup>

View File

@@ -150,7 +150,7 @@ it might that the curl command that is supposed to fetch the buildpack (anything
```shell
dokku config:set --global CURL_TIMEOUT=600
dokku config:set --global CURL_CONNECT_TIMEOUT=30
dokku config:set --global CURL_CONNECT_TIMEOUT=180
```
Please see https://github.com/dokku/dokku/issues/509
@@ -195,3 +195,12 @@ sudo ufw disable
***
__Symptom:__ I can't connect to my application because the server is sending an invalid response, or can't provide a secure connection.
__Solution:__
This isn't usually an issue with Dokku, but rather an app config problem. This can happen when your application is configured to enforce secure connections/HSTS, but you don't have SSL set up for the app.
In Rails at least, if your `application.rb` or `environmnents/production.rb` include the line `configure.force_ssl = true`, which includes HSTS try commenting that out and redeploying.
If this solves the issue temporarily, longer term you should consider [configuring SSL](http://dokku.viewdocs.io/dokku/configuration/ssl/).

View File

@@ -0,0 +1,54 @@
# Uninstalling
While we hate to see you go, if you need to uninstall Dokku, the following may help you out:
## Arch Installation
```shell
# purge dokku from your system
yaourt -Rsn dokku
```
## CentOS Installation
```shell
# uninstall dokku
yum remove dokku herokuish
```
## Debian Installation
```shell
# purge dokku from your system
apt-get purge -y --force-yes dokku herokuish
# remove any dependencies that are no longer necessary
apt-get -y --force-yes autoremove
```
## Makefile Installation
This is a manual deletion process, and as it is not a recommended installation method, there is currently no automated uninstallation.
All service plugins should be unlinked from applications, stopped, and destroyed.
All applications should be stopped, and all docker containers and images deleted:
```shell
# stop all applications
dokku --quiet apps | xargs dokku ps:stop
# cleanup containers and images
dokku cleanup
```
The following user/group must be deleted:
- user: `dokku`
- group: `dokku`
The following directories must be deleted:
- `~dokku`
- `/var/lib/dokku`
- `/var/log/dokku`

View File

@@ -1,6 +1,6 @@
# Upgrading
If your version of Dokku is pre 0.3.0 (check with `dokku version`), we recommend [a fresh install](/dokku/getting-started/installation/) on a new server.
If your version of Dokku is pre 0.3.0 (check with `dokku version`), we recommend [a fresh install](/docs/getting-started/installation.md) on a new server.
## Migration Guides
@@ -8,25 +8,46 @@ Before upgrading, check the migration guides to get comfortable with new feature
### 0.5 Migration Guide
- [0.5 Migration Guide](/dokku/appendices/0.5.0-migration-guide/)
- [0.5 Migration Guide](/docs/appendices/0.5.0-migration-guide.md)
### 0.6 Migration Guide
- [0.6 Migration Guide](/dokku/appendices/0.6.0-migration-guide/)
- [0.6 Migration Guide](/docs/appendices/0.6.0-migration-guide.md)
### 0.7 Migration Guide
- [0.7 Migration Guide](/dokku/appendices/0.7.0-migration-guide/)
- [0.7 Migration Guide](/docs/appendices/0.7.0-migration-guide.md)
### 0.8 Migration Guide
- [0.8 Migration Guide](/docs/appendices/0.8.0-migration-guide.md)
### 0.9 Migration Guide
- [0.9 Migration Guide](/docs/appendices/0.9.0-migration-guide.md)
### 0.10 Migration Guide
- [0.10 Migration Guide](/docs/appendices/0.10.0-migration-guide.md)
## Upgrade Instructions
If Dokku was installed via `apt-get install dokku` or `bootstrap.sh` (most common), upgrade with:
```shell
# update your local apt cache
sudo apt-get update
dokku apps
dokku ps:stop APP # repeat to shut down each running app
# stop each running app
# for 0.8.1 and newer versions, use
dokku --quiet apps:list | xargs -L1 dokku ps:stop
# for older versions, use
dokku --quiet apps | xargs -L1 dokku ps:stop
# update dokku and it's dependencies
sudo apt-get install -qq -y dokku herokuish sshcommand plugn
# rebuild all of your applications
dokku ps:rebuildall # rebuilds all applications
```
@@ -37,7 +58,7 @@ dokku ps:rebuildall # rebuilds all applications
> dokku ps:rebuild APP
> ```
>
> Please see the [images documentation](/dokku/deployment/methods/images/) and [tar documentation](/dokku/deployment/methods/tar/)
> Please see the [images documentation](/docs/deployment/methods/images.md) and [tar documentation](/docs/deployment/methods/tar.md)
> for instructions on rebuilding applications deployed by those plugins.
### Upgrade From Source
@@ -45,8 +66,7 @@ dokku ps:rebuildall # rebuilds all applications
If you installed Dokku from source (less common), upgrade with:
```shell
dokku apps
dokku ps:stop APP # repeat to shut down each running app
dokku --quiet apps | xargs -L1 dokku ps:stop # stops each running app
cd ~/dokku
git pull --tags origin master

View File

@@ -4,7 +4,7 @@ If you’re stuck, there are a number of places you can get help:
## The Official Dokku Website
- [http://dokku.viewdocs.io/dokku/](/dokku/)
- [http://dokku.viewdocs.io/dokku/](/docs/)
The Official Dokku website is always a great place to visit. It features links to oft-used developer tools, community plugins, and guides on using dokku.

View File

@@ -10,30 +10,30 @@
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
<title>Dokku - The smallest PaaS implementation you've ever seen</title>
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon.ico">
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon.ico">
<meta name="apple-mobile-web-app-title" content="Dokku">
<meta name="application-name" content="Dokku">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileImage" content="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/browserconfig.xml">
<meta name="msapplication-TileImage" content="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/style.css" rel="stylesheet">
<link href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/style.css" rel="stylesheet">
<!-- <link href="/dokku/docs/assets/style.css" rel="stylesheet"> -->
<style>
</style>
@@ -98,12 +98,12 @@
<p class="line">
<span class="path"></span>
<span class="prompt">$</span>
<span class="command">wget https://raw.githubusercontent.com/dokku/dokku/v0.9.2/bootstrap.sh</span>
<span class="command">wget https://raw.githubusercontent.com/dokku/dokku/v0.11.2/bootstrap.sh</span>
</p>
<p class="line">
<span class="path"></span>
<span class="prompt">$</span>
<span class="command">sudo DOKKU_TAG=v0.9.2 bash bootstrap.sh</span>
<span class="command">sudo DOKKU_TAG=v0.11.2 bash bootstrap.sh</span>
</p>
<p class="line">
<span class="output">&nbsp;# go to your server's IP and follow the web installer</span>
@@ -283,7 +283,7 @@
<div class="container">
<footer>
<p>&copy; 2013-2016 Dokku</p>
<p>&copy; 2013-2017 Dokku</p>
</footer>
</div>
<script>

View File

@@ -70,7 +70,7 @@ If everything is working correctly, you should also be able to query for any oth
If they all return your IP address, you have set DNS up properly for dokku. You should also be able to `ssh root@myserver.example.tld` and access your server.
Proceed with the setup instructions in the [installation documentation](/dokku/getting-started/installation/)
Proceed with the setup instructions in the [installation documentation](/docs/getting-started/installation.md)
#### Using the root of your domain (myapp.example.tld)

124
docs/networking/network.md Normal file
View File

@@ -0,0 +1,124 @@
# Network Management
> New as of 0.11.0
```
network:report [<app>] [<flag>] # Displays a network report for one or more apps
network:rebuild <app> # Rebuilds network settings for an app
network:rebuildall # Rebuild network settings for all apps
network:set <app> <key> (<value>) # Set or clear a network property for an app
```
The Network plugin allows developers to abstract the concept of container network management, allowing developers to both change what networks a given container is attached to as well as rebuild the configuration on the fly.
## Usage
### Rebuilding network settings
There are cases where you may need to rebuild the network configuration for an app, such as on app boot or container restart. In these cases, you can use the `network:rebuild` command:
```shell
dokku network:rebuild node-js-app
```
> This command will exit a non-zero number that depends on the number of containers for which configuration could not be built
### Rebuilding all network settings
In some cases, a docker upgrade may reset container IPs or Ports. In both cases, you can quickly rewrite those files by using the `network:rebuildall` command:
```shell
dokku network:rebuildall
```
> This command will exit a non-zero number that depends on the number of containers for which configuration could not be built
### Container network interface binding
> This functionality does not control the `--network` docker flag. Please use the [docker-options plugin](docs/advanced-usage/docker-options.md) to manage this flag.
By default, an application will only bind to the internal interface. This behavior can be modified per app by changing the `bind-all-interfaces` network property.
```shell
# bind to the default docker interface (`docker0`) with a random internal ip
# this is the default behavior
dokku network:set node-js-app bind-all-interfaces false
# bind to all interfaces (`0.0.0.0`) on a random port for each upstream port
# this will make the app container directly accessible by other hosts on your network
# ports are randomized for every deploy, e.g. `0.0.0.0:32771->5000/tcp`.
dokku network:set node-js-app bind-all-interfaces true
```
By way of example, in the default case, each container is bound to the docker interface:
```shell
docker ps
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b88d8aec3d1 dokku/node-js-app:latest "/bin/bash -c '/star About a minute ago Up About a minute node-js-app.web.1
```
As such, the container's IP address will be an internal IP, and thus it is only accessible on the host itself:
```
docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' node-js-app.web.1
```
```
172.17.0.6
```
However, you can disable the internal proxying via the `network:set` command so that it will listen on the host's IP address:
```shell
dokku network:set node-js-app bind-all-interfaces true
# container bound to all interfaces
docker ps
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6499edb0edb dokku/node-js-app:latest "/bin/bash -c '/star About a minute ago Up About a minute 0.0.0.0:49153->5000/tcp node-js-app.web.1
```
### Displaying network reports about an app
You can get a report about the app's network status using the `network:report` command:
```shell
dokku network:report
```
```
=====> node-js-app network information
Network bind all interfaces: false
Network listeners: 172.17.0.1:5000
=====> python-sample network information
Network bind all interfaces: false
Network listeners: 172.17.0.2:5000
=====> ruby-sample network information
Network bind all interfaces: true
Network listeners:
```
You can run the command for a specific app also.
```shell
dokku network:report node-js-app
```
```
=====> node-js-app network information
Network bind all interfaces: false
Network listeners: 172.17.0.1:5000
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku network:report node-js-app --network-bind-all-interfaces
```

View File

@@ -19,46 +19,9 @@ In Dokku 0.5.0, port proxying was decoupled from the `nginx-vhosts` plugin into
### Container network interface binding
> New as of 0.5.0
> Changed as of 0.11.0
By default, the deployed docker container running your app's web process will bind to the internal docker network interface (i.e. `docker inspect --format '{{ .NetworkSettings.IPAddress }}' $CONTAINER_ID`). This behavior can be modified per app by disabling the proxy (i.e. `dokku proxy:disable <app>`). In this case, the container will bind to an external interface (i.e. `0.0.0.0`) and your app container will be directly accessible by other hosts on your network.
> If a proxy is disabled, Dokku will bind your container's port to a random port on the host for every deploy, e.g. `0.0.0.0:32771->5000/tcp`.
By way of example, in the default case, each container is bound to the docker interface:
```shell
docker ps
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b88d8aec3d1 dokku/node-js-app:latest "/bin/bash -c '/star About a minute ago Up About a minute node-js-app.web.1
```
As such, the container's IP address will be an internal IP, and thus it is only accessible on the host itself:
```
docker inspect --format '{{ .NetworkSettings.IPAddress }}' node-js-app.web.1
```
```
172.17.0.6
```
However, you can disable the internal proxying via the `proxy:disable` command so that it will listen on the host's IP address:
```shell
dokku proxy:disable node-js-app
# container bound to all interfaces
docker ps
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6499edb0edb dokku/node-js-app:latest "/bin/bash -c '/star About a minute ago Up About a minute 0.0.0.0:49153->5000/tcp node-js-app.web.1
```
From Dokku versions `0.5.0` until `0.11.0`, enabling or disabling an application's proxy would **also** control whether or not the application was bound to all interfaces - e.g. `0.0.0.0`. As of `0.11.0`, this is now controlled by the network plugin. Please see the [network documentation](/docs/networking/network.md#container-network-interface-binding) for more information.
### Displaying proxy reports about an app

View File

@@ -9,26 +9,26 @@
<meta name="author" content="">
<title>Dokku - The smallest PaaS implementation you've ever seen</title>
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/favicon.ico">
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/favicon.ico">
<meta name="apple-mobile-web-app-title" content="Dokku">
<meta name="application-name" content="Dokku">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileImage" content="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/favicons/browserconfig.xml">
<meta name="msapplication-TileImage" content="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/favicons/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<script>
@@ -42,7 +42,7 @@
</script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.rawgit.com/dokku/dokku/v0.9.2/docs/assets/style.css" rel="stylesheet">
<link href="https://cdn.rawgit.com/dokku/dokku/v0.11.2/docs/assets/style.css" rel="stylesheet">
<!-- <link href="/dokku/docs/assets/style.css" rel="stylesheet"> -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet">
<style>
@@ -111,6 +111,7 @@
<a href="#" class="list-group-item disabled">Getting Started</a>
<a href="/{{NAME}}/getting-started/installation/" class="list-group-item">Getting Started with Dokku</a>
<a href="/{{NAME}}/getting-started/upgrading/" class="list-group-item">Upgrading Dokku</a>
<a href="/{{NAME}}/getting-started/uninstalling/" class="list-group-item">Uninstalling Dokku</a>
<a href="/{{NAME}}/getting-started/troubleshooting/" class="list-group-item">Troubleshooting</a>
<a href="/{{NAME}}/getting-started/where-to-get-help/" class="list-group-item">Getting Help</a>
@@ -135,11 +136,16 @@
<a href="#" class="list-group-item disabled">Configuration</a>
<a href="/{{NAME}}/configuration/environment-variables/" class="list-group-item">Environment Variables</a>
<a href="/{{NAME}}/configuration/dns/" class="list-group-item">DNS Configuration</a>
<a href="/{{NAME}}/configuration/domains/" class="list-group-item">Domain Configuration</a>
<a href="/{{NAME}}/configuration/nginx/" class="list-group-item">Nginx Configuration</a>
<a href="/{{NAME}}/configuration/ssl/" class="list-group-item">SSL Configuration</a>
<a href="#" class="list-group-item disabled">Network Management</a>
<a href="/{{NAME}}/networking/dns/" class="list-group-item">DNS Configuration</a>
<a href="/{{NAME}}/networking/network/" class="list-group-item">Network Management</a>
<a href="/{{NAME}}/networking/proxy-management/" class="list-group-item">Proxy and Port Management</a>
<a href="#" class="list-group-item disabled">Advanced Usage</a>
<a href="/{{NAME}}/advanced-usage/backup-recovery/" class="list-group-item">Backup and Recovery</a>
@@ -148,7 +154,6 @@
<a href="/{{NAME}}/advanced-usage/event-logs/" class="list-group-item">Event Logs</a>
<a href="/{{NAME}}/advanced-usage/persistent-storage/" class="list-group-item">Persistent Storage</a>
<a href="/{{NAME}}/advanced-usage/plugin-management/" class="list-group-item">Plugin Management</a>
<a href="/{{NAME}}/advanced-usage/proxy-management/" class="list-group-item">Proxy and Port Management</a>
<a href="/{{NAME}}/advanced-usage/repository-management/" class="list-group-item">Repository Management</a>
<a href="#" class="list-group-item disabled">Community Contributions</a>

View File

@@ -1,5 +1,6 @@
{
"redirects": {
"installation": "getting-started/advanced-installation/",
"advanced-installation": "getting-started/advanced-installation/",
"troubleshooting": "getting-started/troubleshooting/",
"upgrading": "getting-started/upgrading/",
@@ -14,16 +15,19 @@
"deployment/images": "deployment/methods/images/",
"configuration-management": "configuration/environment-variables/",
"deployment/ssl-configuration": "configuration/ssl/",
"dns": "configuration/dns/",
"nginx": "configuration/nginx/",
"dns": "networking/dns/",
"configuration/dns": "networking/dns/",
"proxy": "networking/proxy-management/",
"advanced-usage/proxy-management": "networking/proxy-management/",
"backup-recovery": "advanced-usage/backup-recovery/",
"deployment-tasks": "advanced-usage/deployment-tasks/",
"deployment/deployment-tasks": "advanced-usage/deployment-tasks/",
"docker-options": "advanced-usage/docker-options/",
"dokku-events-logs": "advanced-usage/event-logs/",
"dokku-storage": "advanced-usage/persistent-storage/",
"proxy": "advanced-usage/proxy-management/",
"plugins": "community/plugins/"
}

10
dokku
View File

@@ -56,8 +56,12 @@ if [[ $(id -un) != "dokku" ]] && [[ ! $1 =~ plugin:* ]] && [[ ! $1 == "ssh-keys:
exit $?
fi
if [[ $(id -un) != "root" && $1 =~ ^plugin:.* && $1 != "plugin:help" && $1 != "plugin:list" ]] || [[ $(id -un) != "root" && $1 == "ssh-keys:add" ]]; then
dokku_log_fail "This command must be run as root"
if [[ $1 =~ ^plugin:.* && $1 != "plugin:help" && $1 != "plugin:list" ]] || [[ $1 == "ssh-keys:add" ]]; then
if [[ $(id -un) != "root" ]]; then
dokku_log_fail "This command must be run as root"
else
export SSH_USER=root
fi
fi
if [[ -n "$SSH_ORIGINAL_COMMAND" ]]; then
@@ -121,7 +125,7 @@ execute_dokku_cmd() {
elif [[ -x $PLUGIN_ENABLED_PATH/$PLUGIN_NAME/subcommands/$PLUGIN_CMD ]]; then
"$PLUGIN_ENABLED_PATH/$PLUGIN_NAME/subcommands/$PLUGIN_CMD" "$@"
implemented=1
elif [[ -x $PLUGIN_ENABLED_PATH/${PLUGIN_NAME%%:*}/subcommands/${1#*:} ]]; then
elif [[ -x $PLUGIN_ENABLED_PATH/${PLUGIN_NAME%%:*}/subcommands/${1#*:} ]] && [[ -n "${1#*:}" ]]; then
"$PLUGIN_ENABLED_PATH/${PLUGIN_NAME%%:*}/subcommands/${1#*:}" "$@"
implemented=1
fi

View File

@@ -23,8 +23,10 @@ get_phase_script() {
execute_script() {
declare desc="executes appropriate phase script key from app.json"
local APP="$1"; local IMAGE_TAG="$2"; local IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG")
local PHASE_SCRIPT_KEY="$3"
local APP="$1"; local IMAGE_TAG="$2"; local PHASE_SCRIPT_KEY="$3"
local IMAGE id
IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG")
local SCRIPT_CMD=$(get_phase_script "$IMAGE" "$PHASE_SCRIPT_KEY" 2>/dev/null)
if [[ -n "$SCRIPT_CMD" ]];then
dokku_log_info1 "Running '$SCRIPT_CMD' in app container"
@@ -55,8 +57,11 @@ execute_script() {
# strip --restart args from DOCKER_ARGS
local DOCKER_ARGS=$(sed -e "s/--restart=[[:graph:]]\+[[:blank:]]\?//g" <<< "$DOCKER_ARGS")
# shellcheck disable=SC2086
local id=$(docker run "$DOKKU_GLOBAL_RUN_ARGS" -e DOKKU_TRACE="$DOKKU_TRACE" --label=dokku_phase_script="${PHASE_SCRIPT_KEY}" -d -v "$CACHE_DIR:/cache" $DOCKER_ARGS "$IMAGE" /bin/bash -c "$COMMAND")
# eval args as array to respect escapes
declare -a ARG_ARRAY
eval "ARG_ARRAY=($DOCKER_ARGS)"
id=$(docker run "$DOKKU_GLOBAL_RUN_ARGS" -e DOKKU_TRACE="$DOKKU_TRACE" --label=dokku_phase_script="${PHASE_SCRIPT_KEY}" -d -v "$CACHE_DIR:/cache" "${ARG_ARRAY[@]}" "$IMAGE" /bin/bash -c "$COMMAND")
if test "$(docker wait "$id")" -eq 0; then
dokku_container_log_verbose_quiet "$id"
if [[ "$PHASE_SCRIPT_KEY" != "postdeploy" ]];then

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku core standard plugin"
version = "0.9.2"
version = "0.11.2"
[plugin.config]

View File

@@ -17,6 +17,7 @@ app_user_pre_deploy_trigger() {
local desc="app user pre-deploy trigger"
local APP="$1"; local IMAGE_TAG="$2"; local IMAGE; local DOCKER_ARGS
local DOKKU_APP_TYPE DOKKU_APP_USER APP_PATHS CONTAINER_PATHS
declare -a ARG_ARRAY
IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG")
@@ -27,12 +28,15 @@ app_user_pre_deploy_trigger() {
if [[ -n "$APP_PATHS" ]]; then
CONTAINER_PATHS=$(echo "$APP_PATHS" | awk -F ':' '{ print $2 }' | xargs)
DOCKER_ARGS=$(: | plugn trigger docker-args-deploy "$APP" "$IMAGE_TAG" | xargs)
DOCKER_ARGS=$(: | plugn trigger docker-args-deploy "$APP" "$IMAGE_TAG")
# strip --restart args from DOCKER_ARGS
DOCKER_ARGS=$(sed -e "s/--restart=[[:graph:]]\+[[:blank:]]\?//g" <<< "$DOCKER_ARGS")
eval "ARG_ARRAY=($DOCKER_ARGS)"
fi
if [[ "$DOKKU_APP_TYPE" == "herokuish" ]] && [[ -n "$CONTAINER_PATHS" ]]; then
# shellcheck disable=SC2086
docker run $DOKKU_GLOBAL_RUN_ARGS $DOCKER_ARGS $IMAGE /bin/bash -c "find $CONTAINER_PATHS -not -user $DOKKU_APP_USER -print0 | xargs -0 -r chown -R $DOKKU_APP_USER" || true
docker run $DOKKU_GLOBAL_RUN_ARGS "${ARG_ARRAY[@]}" $IMAGE /bin/bash -c "find $CONTAINER_PATHS -not -user $DOKKU_APP_USER -print0 | xargs -0 -r chown -R $DOKKU_APP_USER" || true
fi
}

View File

@@ -6,7 +6,7 @@ dokku_cleanup_cmd(){
declare desc="cleans up old deployment cruft"
local cmd="cleanup"
docker_cleanup
docker_cleanup "$APP" "true"
}

View File

@@ -18,7 +18,7 @@ dokku_report_cmd() {
docker run --rm -ti gliderlabs/herokuish:latest herokuish version
dokku_log_info1 "dokku version: $(dokku version)"
dokku_log_info1 "dokku plugins: "
dokku plugin
dokku plugin:list
}
dokku_report_cmd "$@"

View File

@@ -22,7 +22,10 @@ dokku_run_cmd() {
local DOCKER_ARGS=$(: | plugn trigger docker-args-run "$APP" "$IMAGE_TAG")
[[ "$DOKKU_TRACE" ]] && local DOCKER_ARGS+=" -e TRACE=true "
local DOKKU_RUN_OPTS=""
declare -a ARG_ARRAY
eval "ARG_ARRAY=($DOCKER_ARGS)"
local DOKKU_RUN_OPTS=" -e DYNO=run.$RANDOM"
if [[ "$DOKKU_RM_CONTAINER" ]]; then
DOKKU_RUN_OPTS+=" --rm"
elif [[ "$DOKKU_DETACH_CONTAINER" ]]; then
@@ -44,7 +47,7 @@ dokku_run_cmd() {
fi
# shellcheck disable=SC2086
docker run $DOKKU_GLOBAL_RUN_ARGS $DOKKU_RUN_OPTS $DOCKER_ARGS $IMAGE $EXEC_CMD "$@"
docker run $DOKKU_GLOBAL_RUN_ARGS $DOKKU_RUN_OPTS "${ARG_ARRAY[@]}" $IMAGE $EXEC_CMD "$@"
}
dokku_run_cmd "$@"

View File

@@ -60,7 +60,7 @@ $DOKKU_LOGS_DIR/*.log {
EOF
if [[ "$DOKKU_DISTRO" = "debian" ]]; then
sed -i 's/ syslog dokku$/root dokku/g' $DOKKU_LOGROTATE_FILE
sed -i 's/ syslog dokku$/ root dokku/g' $DOKKU_LOGROTATE_FILE
fi
flag_rsyslog_needs_restart=y

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku core events logging plugin"
version = "0.9.2"
version = "0.11.2"
[plugin.config]

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku core apps plugin"
version = "0.9.2"
version = "0.11.2"
[plugin.config]

View File

@@ -6,7 +6,12 @@ app_post_delete() {
declare desc="apps post-delete plugin trigger"
local trigger="app_post_delete"
local APP="$1"; local IMAGE_REPO=$(get_app_image_repo "$APP")
[[ -n $APP ]] && rm -rf "${DOKKU_ROOT:?}/$APP" > /dev/null
if [[ -n $APP ]]; then
# remove contents for apps that are symlinks to other folders
rm -rf "${DOKKU_ROOT:?}/$APP/" > /dev/null
# then remove the folder and/or the symlink
rm -rf "${DOKKU_ROOT:?}/$APP" > /dev/null
fi
# remove all application containers & images
# shellcheck disable=SC2046

View File

@@ -8,6 +8,10 @@ apps_pre_delete() {
local APP="$1"; local IMAGE_TAG="$2"; local IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG"); local CACHE_DIR="$DOKKU_ROOT/$APP/cache"
verify_app_name "$APP"
if ! is_image_herokuish_based "$IMAGE"; then
return
fi
if [[ -d $CACHE_DIR ]]; then
docker run "$DOKKU_GLOBAL_RUN_ARGS" --rm -v "$CACHE_DIR:/cache" "$IMAGE" find /cache -depth -mindepth 1 -maxdepth 1 -exec rm -Rf {} \; || true
fi

View File

@@ -21,7 +21,9 @@ apps_clone_cmd() {
local NEW_CACHE_DIR="$DOKKU_ROOT/$NEW_APP/cache"
apps_create "$NEW_APP"
cp -a "$DOKKU_ROOT/$OLD_APP/." "$DOKKU_ROOT/$NEW_APP"
pushd "$DOKKU_ROOT/$OLD_APP/." > /dev/null
find ./* -not \( -name .cache \) | grep -v "./cache" | cpio -pdmu --quiet "$DOKKU_ROOT/$NEW_APP"
popd > /dev/null 2>&1 || pushd "/tmp" > /dev/null
if [[ -d "$NEW_CACHE_DIR" ]] && ! rmdir "$NEW_CACHE_DIR"; then
docker run "$DOKKU_GLOBAL_RUN_ARGS" --rm -v "$NEW_CACHE_DIR:/cache" "dokku/$OLD_APP" chmod 777 -R /cache

View File

@@ -30,7 +30,7 @@ report_single_app() {
)
if [[ -z "$INFO_FLAG" ]]; then
dokku_log_info2 "$APP"
dokku_log_info2_quiet "$APP app information"
if (is_deployed "$APP"); then
for flag in "${flag_map[@]}"; do
key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')"

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku core build-env plugin"
version = "0.9.2"
version = "0.11.2"
[plugin.config]

View File

@@ -6,36 +6,26 @@ source "$PLUGIN_AVAILABLE_PATH/config/functions"
build_env_pre_build_buildpack() {
declare desc="build-env pre-build-buildpack plugin trigger"
local trigger="build_env_pre_build_buildpack"
local APP="$1"; local IMAGE=$(get_app_image_name "$APP"); local BUILD_ENV=""
local APP="$1"
local IMAGE id
verify_app_name "$APP"
IMAGE=$(get_app_image_name "$APP");
[[ -z $(config_get --global CURL_CONNECT_TIMEOUT) ]] && config_set --global CURL_CONNECT_TIMEOUT=5
[[ -z $(config_get --global CURL_TIMEOUT) ]] && config_set --global CURL_TIMEOUT=30
[[ -z $(config_get --global CURL_CONNECT_TIMEOUT) ]] && config_set --global CURL_CONNECT_TIMEOUT=90
[[ -z $(config_get --global CURL_TIMEOUT) ]] && config_set --global CURL_TIMEOUT=60
if [[ -n $(config_export global) ]]; then
local BUILD_ENV+=$'\n'
local BUILD_ENV+=$(config_export global)
local BUILD_ENV+=$'\n'
fi
if [[ -n $(config_export app "$APP") ]]; then
local BUILD_ENV+=$'\n'
local BUILD_ENV+=$(config_export app "$APP")
local BUILD_ENV+=$'\n'
fi
dokku_log_info1 "Adding BUILD_ENV to build environment..."
# create build env files for use in buildpacks like this:
# https://github.com/niteoweb/heroku-buildpack-buildout/blob/5879fa3418f7d8e079f1aa5816ba1adde73f4948/bin/compile#L34
id=$(config_bundle --merged "$APP" | docker run "$DOKKU_GLOBAL_RUN_ARGS" -i -a stdin "$IMAGE" /bin/bash -c "mkdir -p /tmp/env; cat | tar -x -C /tmp/env")
test "$(docker wait "$id")" -eq 0
docker commit "$id" "$IMAGE" > /dev/null
if [[ ! -z "$BUILD_ENV" ]]; then
dokku_log_info1 "Adding BUILD_ENV to build environment..."
# create build env files for use in buildpacks like this:
# https://github.com/niteoweb/heroku-buildpack-buildout/blob/5879fa3418f7d8e079f1aa5816ba1adde73f4948/bin/compile#L34
local id=$(echo $BUILD_ENV | sed -e 's@export @@g' -e 's@\\n@ @g' | docker run "$DOKKU_GLOBAL_RUN_ARGS" -i -a stdin "$IMAGE" /bin/bash -c "mkdir -p /tmp/env; for ENV_VAR in $(cat); do echo \$ENV_VAR | cut -d'=' -f2- > /tmp/env/\$(echo \$ENV_VAR | cut -d'=' -f1); done " )
test "$(docker wait "$id")" -eq 0
docker commit "$id" "$IMAGE" > /dev/null
# create build env for 'old style' buildpacks and dokku plugins
local id=$(echo -e "$BUILD_ENV" | docker run "$DOKKU_GLOBAL_RUN_ARGS" -i -a stdin "$IMAGE" /bin/bash -c "cat >> /app/.env")
test "$(docker wait "$id")" -eq 0
docker commit "$id" "$IMAGE" > /dev/null
fi
# create build env for 'old style' buildpacks and dokku plugins
id=$(config_export app "$APP" --format envfile --merged | docker run "$DOKKU_GLOBAL_RUN_ARGS" -i -a stdin "$IMAGE" /bin/bash -c "cat >> /app/.env")
test "$(docker wait "$id")" -eq 0
docker commit "$id" "$IMAGE" > /dev/null
}
build_env_pre_build_buildpack "$@"

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku core certificate management plugin"
version = "0.9.2"
version = "0.11.2"
[plugin.config]

View File

@@ -93,7 +93,7 @@ report_single_app() {
)
if [[ -z "$INFO_FLAG" ]]; then
dokku_log_info2 "$APP ssl information"
dokku_log_info2_quiet "$APP ssl information"
for flag in "${flag_map[@]}"; do
key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')"
dokku_log_verbose "$(printf "%-20s %-25s" "${key^}" "${flag#*: }")"

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku core checks plugin"
version = "0.9.2"
version = "0.11.2"
[plugin.config]

Some files were not shown because too many files have changed in this diff Show More