Compare commits
52 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3bb8812e33 | ||
|
|
230a1dbcc4 | ||
|
|
07f2ef1411 | ||
|
|
3c68114ad3 | ||
|
|
4f870512f4 | ||
|
|
5b7464f525 | ||
|
|
64d6c28e30 | ||
|
|
6f55b89149 | ||
|
|
7f213beefa | ||
|
|
bc1aba6c7a | ||
|
|
861dc9fe95 | ||
|
|
0a7994b67f | ||
|
|
a5441ff03e | ||
|
|
dd7ae8c617 | ||
|
|
cf4eed2de0 | ||
|
|
d7dfc5d30b | ||
|
|
27cda5dd31 | ||
|
|
cbacdb7e2c | ||
|
|
0fbb92f3ad | ||
|
|
7e857b3846 | ||
|
|
c75fe998e2 | ||
|
|
55d8e2db81 | ||
|
|
c209787de8 | ||
|
|
c4ce25415b | ||
|
|
423493ac8d | ||
|
|
7818c82075 | ||
|
|
84b9988330 | ||
|
|
ddf6755d0c | ||
|
|
850a7d55d9 | ||
|
|
f6a819351f | ||
|
|
c6f4e4bc14 | ||
|
|
e24a3603ac | ||
|
|
1186f3fccf | ||
|
|
e0c2e7846a | ||
|
|
416b25d6ae | ||
|
|
9075b7b175 | ||
|
|
780cb5a2e7 | ||
|
|
27521bf5d6 | ||
|
|
5d255301b4 | ||
|
|
2d2d4247a1 | ||
|
|
496488cb3e | ||
|
|
dacbb0f2dc | ||
|
|
36c0f7c160 | ||
|
|
78a984b52f | ||
|
|
bc7a3de68d | ||
|
|
53f963f028 | ||
|
|
02b3b8e7e6 | ||
|
|
c45b61d402 | ||
|
|
f1b0be30e0 | ||
|
|
1222b9fdb4 | ||
|
|
bb54231233 | ||
|
|
4306178966 |
@@ -7,6 +7,12 @@ RUN apt-get install --no-install-recommends -y build-essential file nano && \
|
||||
apt-get autoremove --yes && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN wget https://dl.google.com/go/go1.16.10.linux-amd64.tar.gz && \
|
||||
tar -xvf go1.16.10.linux-amd64.tar.gz && \
|
||||
mv go /usr/local
|
||||
|
||||
RUN GOROOT=/usr/local/go /usr/local/go/bin/go install golang.org/x/tools/gopls@latest 2>&1
|
||||
|
||||
ADD https://raw.githubusercontent.com/dokku/dokku/master/tests/dhparam.pem /mnt/dokku/etc/nginx/dhparam.pem
|
||||
|
||||
COPY .devcontainer/bin/ /usr/local/bin/
|
||||
@@ -15,5 +21,6 @@ RUN make ci-dependencies
|
||||
|
||||
COPY . .
|
||||
|
||||
ENV DOKKU_HOSTNAME=dokku.me
|
||||
ENV DOKKU_HOSTNAME=dokku.me GOROOT=/usr/local/go PATH=/usr/local/go/bin:$PATH PLUGIN_MAKE_TARGET=build
|
||||
|
||||
LABEL org.label-schema.schema-version=1.0 org.label-schema.vendor=dokku com.dokku.devcontainer=true
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
main() {
|
||||
declare PLUGIN_NAME="$1"
|
||||
|
||||
make go-build-plugin copyplugin PLUGIN_NAME=$PLUGIN_NAME
|
||||
make go-build-plugin copyplugin PLUGIN_NAME=$PLUGIN_NAME PLUGIN_MAKE_TARGET=build
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
31
.devcontainer/bin/go-mod-downloadall
Executable file
31
.devcontainer/bin/go-mod-downloadall
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
set -x
|
||||
|
||||
main() {
|
||||
find plugins/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read plugin; do
|
||||
if [[ ! -f "plugins/$plugin/go.mod" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
pushd "plugins/$plugin" >/dev/null || return 1
|
||||
echo "====> Cloning all modules $plugin"
|
||||
go list -m -f '{{define "M"}}git clone https://{{.Path}}.git /root/go/src/{{.Path}} || true{{end}}{{if not .Main}}{{if not .Replace}}{{template "M" .}}{{end}}{{end}}' all >tmp-file
|
||||
bash tmp-file
|
||||
rm tmp-file
|
||||
popd >/dev/null || return 1
|
||||
done
|
||||
|
||||
git clone --branch v2 https://github.com/go-yaml/yaml.git /root/go/src/gopkg.in/yaml.v2 || true
|
||||
git clone --branch v3 https://github.com/robfig/cron /root/go/src/github.com/robfig/cron/v3 || true
|
||||
git clone https://github.com/golang/net /root/go/src/golang.org/x/net || true
|
||||
git clone https://github.com/golang/protobuf.git /root/go/src/github.com/golang/protobuf || true
|
||||
git clone https://github.com/golang/sync /root/go/src/golang.org/x/sync || true
|
||||
git clone https://github.com/golang/sys.git /root/go/src/golang.org/x/sys || true
|
||||
git clone https://github.com/golang/text.git /root/go/src/golang.org/x/text || true
|
||||
git clone https://github.com/googleapis/go-genproto.git /root/go/src/google.golang.org/genproto || true
|
||||
git clone https://github.com/grpc/grpc-go.git /root/go/src/google.golang.org/grpc || true
|
||||
git clone https://github.com/onsi/gomega /root/go/src/github.com/onsi/gomega || true
|
||||
git clone https://github.com/protocolbuffers/protobuf-go.git /root/go/src/google.golang.org/protobuf || true
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -7,12 +7,19 @@
|
||||
"DOKKU_HOST_ROOT": "${localWorkspaceFolder}/tmp/data/home/dokku",
|
||||
"GO_ROOT_MOUNT": "${localWorkspaceFolder}:/go/src/github.com/dokku/dokku"
|
||||
},
|
||||
"extensions": [
|
||||
"golang.go",
|
||||
"mads-hartmann.bash-ide-vscode",
|
||||
"ms-vscode.makefile-tools"
|
||||
],
|
||||
"initializeCommand": ["mkdir", "-p", "tmp/data"],
|
||||
"mounts": [
|
||||
"source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind",
|
||||
"source=${localWorkspaceFolder}/tmp/data/,target=/mnt/dokku/,type=bind"
|
||||
],
|
||||
"overrideCommand": false,
|
||||
"postCreateCommand": ["make", "setup-deploy-tests"],
|
||||
"runArgs": ["--init"]
|
||||
"postCreateCommand": "make setup-deploy-tests && go-mod-downloadall",
|
||||
"runArgs": ["--init"],
|
||||
"workspaceFolder": "/root/go/src/github.com/dokku/dokku",
|
||||
"workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/root/go/src/github.com/dokku/dokku,consistency=cached"
|
||||
}
|
||||
|
||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -83,6 +83,8 @@ jobs:
|
||||
run: |
|
||||
git config --global user.name 'Dokku Bot'
|
||||
git config --global user.email no-reply@dokku.com
|
||||
# brew tap dokku/repo "https://$HOMEBREW_GITHUB_USERNAME:$HOMEBREW_GITHUB_API_TOKEN@github.com/dokku/homebrew-repo.git"
|
||||
curl -sSL https://github.com/dokku/netrc/releases/download/v0.4.1/netrc_0.4.1_darwin_x86_64.tgz | tar xvf -
|
||||
mv netrc /usr/local/bin/netrc
|
||||
netrc set github.com "$HOMEBREW_GITHUB_USERNAME" "$HOMEBREW_GITHUB_API_TOKEN"
|
||||
brew tap dokku/repo
|
||||
brew bump-formula-pr -f --no-browse --no-audit --no-fork --debug --verbose --url "https://github.com/dokku/dokku/archive/${{ needs.release.outputs.version }}.tar.gz" dokku/repo/dokku
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -3,6 +3,7 @@
|
||||
.DS_Store
|
||||
.ruby-version
|
||||
.idea/
|
||||
.vscode/
|
||||
.vagrant
|
||||
build/
|
||||
data/
|
||||
|
||||
54
HISTORY.md
54
HISTORY.md
@@ -1,5 +1,59 @@
|
||||
# History
|
||||
|
||||
## 0.26.7
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.26.7/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.26.7 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #5003: @josegonzalez Respect pre-existing .env files when preparing the herokuish buildenv
|
||||
- #4950: @emdienn Use exported environment vars during pack build
|
||||
- #4999: @elhu Purge cache for all apps when calling buildpacks:set-property with --global flag
|
||||
- #4988: @fomojola Conditionally restart NGINX
|
||||
- #4922: @josegonzalez Gitignore more built plugin triggers in apps plugin
|
||||
|
||||
### New Features
|
||||
|
||||
- #4964: @josegonzalez Add log message when running state is false
|
||||
- #4970: @josegonzalez Log the string error and not bytes when there is an issue updating the cron schedule
|
||||
- #4924: @josegonzalez Update devcontainer to include aliased go packages
|
||||
- #4920: @josegonzalez Ensure related go source and vscode plugins are installed in devcontainer
|
||||
|
||||
### Documentation
|
||||
|
||||
- #4949: @IlyaSemenov docs: update herokuish upgrade instructions
|
||||
- #4992: @anthonyshew Typo for deploying using image SHA
|
||||
- #4976: @josegonzalez Update link in header to dokku pro
|
||||
- #4972: @Dam-Buty Clarify cron:report command
|
||||
- #4943: @Stormheg Fix typo in registry management documentation
|
||||
- #4935: @josegonzalez Reword note about env vars in nginx config templates
|
||||
|
||||
### Other
|
||||
|
||||
- #4995: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 203 to 205 in /tests/apps/php
|
||||
- #4978: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 201 to 203 in /tests/apps/php
|
||||
- #4936: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 200 to 201 in /tests/apps/php
|
||||
- #4937: @dependabot[bot] chore(deps): bump socket.io from 4.3.2 to 4.4.0 in /tests/apps/.websocket.disabled
|
||||
|
||||
## 0.26.6
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.26.6/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.26.6 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #4919: @nerg4l fix: do not validate global flag as an app name
|
||||
- #4918: @josegonzalez Use netrc binary to properly release dokku client homebrew formula
|
||||
|
||||
## 0.26.5
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
@@ -98,8 +98,8 @@ Otherwise, you will need to import the keypair manually after installation using
|
||||
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.26.5/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.26.5 bash bootstrap.sh
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.26.7/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.26.7 bash bootstrap.sh
|
||||
```
|
||||
|
||||
You can then proceed to configure your server domain (via `dokku domains:set-global`) and user access (via `dokku ssh-keys:add`) to complete the installation.
|
||||
|
||||
2
debian/control
vendored
2
debian/control
vendored
@@ -1,5 +1,5 @@
|
||||
Package: dokku
|
||||
Version: 0.26.5
|
||||
Version: 0.26.7
|
||||
Section: web
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
|
||||
@@ -35,35 +35,35 @@ dokku plugin:list
|
||||
|
||||
```
|
||||
plugn: dev
|
||||
00_dokku-standard 0.26.5 enabled dokku core standard plugin
|
||||
20_events 0.26.5 enabled dokku core events logging plugin
|
||||
app-json 0.26.5 enabled dokku core app-json plugin
|
||||
apps 0.26.5 enabled dokku core apps plugin
|
||||
build-env 0.26.5 enabled dokku core build-env plugin
|
||||
buildpacks 0.26.5 enabled dokku core buildpacks plugin
|
||||
certs 0.26.5 enabled dokku core certificate management plugin
|
||||
checks 0.26.5 enabled dokku core checks plugin
|
||||
common 0.26.5 enabled dokku core common plugin
|
||||
config 0.26.5 enabled dokku core config plugin
|
||||
docker-options 0.26.5 enabled dokku core docker-options plugin
|
||||
domains 0.26.5 enabled dokku core domains plugin
|
||||
enter 0.26.5 enabled dokku core enter plugin
|
||||
git 0.26.5 enabled dokku core git plugin
|
||||
logs 0.26.5 enabled dokku core logs plugin
|
||||
network 0.26.5 enabled dokku core network plugin
|
||||
nginx-vhosts 0.26.5 enabled dokku core nginx-vhosts plugin
|
||||
plugin 0.26.5 enabled dokku core plugin plugin
|
||||
proxy 0.26.5 enabled dokku core proxy plugin
|
||||
ps 0.26.5 enabled dokku core ps plugin
|
||||
repo 0.26.5 enabled dokku core repo plugin
|
||||
resource 0.26.5 enabled dokku core resource plugin
|
||||
scheduler-docker-local 0.26.5 enabled dokku core scheduler-docker-local plugin
|
||||
shell 0.26.5 enabled dokku core shell plugin
|
||||
ssh-keys 0.26.5 enabled dokku core ssh-keys plugin
|
||||
storage 0.26.5 enabled dokku core storage plugin
|
||||
tags 0.26.5 enabled dokku core tags plugin
|
||||
tar 0.26.5 enabled dokku core tar plugin
|
||||
trace 0.26.5 enabled dokku core trace plugin
|
||||
00_dokku-standard 0.26.7 enabled dokku core standard plugin
|
||||
20_events 0.26.7 enabled dokku core events logging plugin
|
||||
app-json 0.26.7 enabled dokku core app-json plugin
|
||||
apps 0.26.7 enabled dokku core apps plugin
|
||||
build-env 0.26.7 enabled dokku core build-env plugin
|
||||
buildpacks 0.26.7 enabled dokku core buildpacks plugin
|
||||
certs 0.26.7 enabled dokku core certificate management plugin
|
||||
checks 0.26.7 enabled dokku core checks plugin
|
||||
common 0.26.7 enabled dokku core common plugin
|
||||
config 0.26.7 enabled dokku core config plugin
|
||||
docker-options 0.26.7 enabled dokku core docker-options plugin
|
||||
domains 0.26.7 enabled dokku core domains plugin
|
||||
enter 0.26.7 enabled dokku core enter plugin
|
||||
git 0.26.7 enabled dokku core git plugin
|
||||
logs 0.26.7 enabled dokku core logs plugin
|
||||
network 0.26.7 enabled dokku core network plugin
|
||||
nginx-vhosts 0.26.7 enabled dokku core nginx-vhosts plugin
|
||||
plugin 0.26.7 enabled dokku core plugin plugin
|
||||
proxy 0.26.7 enabled dokku core proxy plugin
|
||||
ps 0.26.7 enabled dokku core ps plugin
|
||||
repo 0.26.7 enabled dokku core repo plugin
|
||||
resource 0.26.7 enabled dokku core resource plugin
|
||||
scheduler-docker-local 0.26.7 enabled dokku core scheduler-docker-local plugin
|
||||
shell 0.26.7 enabled dokku core shell plugin
|
||||
ssh-keys 0.26.7 enabled dokku core ssh-keys plugin
|
||||
storage 0.26.7 enabled dokku core storage plugin
|
||||
tags 0.26.7 enabled dokku core tags plugin
|
||||
tar 0.26.7 enabled dokku core tar plugin
|
||||
trace 0.26.7 enabled dokku core trace plugin
|
||||
```
|
||||
|
||||
> Warning: All plugin commands other than `plugin:list` and `plugin:help` require sudo access and must be run directly from the Dokku server.
|
||||
|
||||
@@ -103,7 +103,7 @@ dokku registry:set node-js-app push-on-release
|
||||
|
||||
### Pushing images on build
|
||||
|
||||
To push the image on release, set the `push-on-release` property to `true` via the `registry:set` command. The default value for this property is `false`. Setting the property to `true` will result in the imag being tagged with an ID that is incremented with every release. This tag will be what is used for running app code.
|
||||
To push the image on release, set the `push-on-release` property to `true` via the `registry:set` command. The default value for this property is `false`. Setting the property to `true` will result in the image being tagged with an ID that is incremented with every release. This tag will be what is used for running app code.
|
||||
|
||||
```shell
|
||||
dokku registry:set node-js-app push-on-release true
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square70x70logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/mstile-70x70.png"/>
|
||||
<square150x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/mstile-150x150.png"/>
|
||||
<square310x310logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/mstile-310x310.png"/>
|
||||
<wide310x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/mstile-310x150.png"/>
|
||||
<square70x70logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/mstile-70x70.png"/>
|
||||
<square150x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/mstile-150x150.png"/>
|
||||
<square310x310logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/mstile-310x310.png"/>
|
||||
<wide310x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/mstile-310x150.png"/>
|
||||
<TileColor>#da532c</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
|
||||
@@ -2,37 +2,37 @@
|
||||
"name": "Dokku",
|
||||
"icons": [
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.5\/docs\/assets\/favicons\/android-chrome-36x36.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.7\/docs\/assets\/favicons\/android-chrome-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.5\/docs\/assets\/favicons\/android-chrome-48x48.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.7\/docs\/assets\/favicons\/android-chrome-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.5\/docs\/assets\/favicons\/android-chrome-72x72.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.7\/docs\/assets\/favicons\/android-chrome-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.5\/docs\/assets\/favicons\/android-chrome-96x96.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.7\/docs\/assets\/favicons\/android-chrome-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.5\/docs\/assets\/favicons\/android-chrome-144x144.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.7\/docs\/assets\/favicons\/android-chrome-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.5\/docs\/assets\/favicons\/android-chrome-192x192.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.26.7\/docs\/assets\/favicons\/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
|
||||
@@ -42,13 +42,13 @@ h1 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
.header .navbar-brand a {
|
||||
background-image: url(https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/dokku.png);
|
||||
background-image: url(https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/dokku.png);
|
||||
text-indent: 40px;
|
||||
}
|
||||
.blurb {
|
||||
color: #424242;
|
||||
background-color: #ededed;
|
||||
background-image: url(https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/gplaypattern.png);
|
||||
background-image: url(https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/gplaypattern.png);
|
||||
padding: 45px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
"0.23.9",
|
||||
"0.24.10",
|
||||
"0.25.7",
|
||||
"0.26.5"
|
||||
"0.26.7"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -289,7 +289,7 @@ Unsetting this value is the same as enabling custom nginx config usage.
|
||||
|
||||
Finally, each process type has it's network listeners - a list of IP:PORT pairs for the respective app containers - exposed via an `.DOKKU_APP_${PROCESS_TYPE}_LISTENERS` variable - the `PROCESS_TYPE` will be upper-cased with hyphens transformed into underscores. Users can use the new variables to expose non-web processes via the nginx proxy.
|
||||
|
||||
> 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`.
|
||||
> Note: Application environment variables are available for use in custom templates. To do so, use the form of `{{ var "FOO" }}` to access a variable named `FOO`.
|
||||
|
||||
#### Customizing via configuration files included by the default templates
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ The resulting `git:from-image` call would then be:
|
||||
|
||||
```shell
|
||||
# where the image sha is: sha256:9d187c3025d03c033dcc71e3a284fee53be88cc4c0356a19242758bc80cab673
|
||||
dokku git:from-image node-js-app dokku/node-js-getting-started:@sha256:9d187c3025d03c033dcc71e3a284fee53be88cc4c0356a19242758bc80cab673
|
||||
dokku git:from-image node-js-app dokku/node-js-getting-started@sha256:9d187c3025d03c033dcc71e3a284fee53be88cc4c0356a19242758bc80cab673
|
||||
```
|
||||
|
||||
The `git:from-image` command can optionally take a git `user.name` and `user.email` argument (in that order) to customize the author. If the arguments are left empty, they will fallback to `Dokku` and `automated@dokku.sh`, respectively.
|
||||
|
||||
@@ -29,7 +29,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.26.5-2 (Mon Feb 22 23:20:37 CET 2016)"
|
||||
# wait for "==> build-arch: ==> Finished making: dokku 0.26.7-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'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pull the dokku/dokku image:
|
||||
|
||||
```shell
|
||||
docker pull dokku/dokku:0.26.5
|
||||
docker pull dokku/dokku:0.26.7
|
||||
```
|
||||
|
||||
Next, run the image.
|
||||
@@ -18,7 +18,7 @@ docker container run \
|
||||
--publish 8443:443 \
|
||||
--volume /var/lib/dokku:/mnt/dokku \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
dokku/dokku:0.26.5
|
||||
dokku/dokku:0.26.7
|
||||
```
|
||||
|
||||
The above command will start a new docker container that is ready when a message similar to `Runit started as PID 12345` appears.
|
||||
|
||||
@@ -19,8 +19,8 @@ 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.26.5/bootstrap.sh;
|
||||
sudo DOKKU_TAG=v0.26.5 bash bootstrap.sh
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.26.7/bootstrap.sh;
|
||||
sudo DOKKU_TAG=v0.26.7 bash bootstrap.sh
|
||||
```
|
||||
|
||||
The installation process takes about 5-10 minutes, depending upon internet connection speed.
|
||||
|
||||
@@ -118,6 +118,5 @@ To upgrade Herokuish from source, upgrade with:
|
||||
cd /tmp
|
||||
git clone https://github.com/gliderlabs/herokuish.git
|
||||
cd herokuish
|
||||
git pull origin master
|
||||
IMAGE_NAME=gliderlabs/herokuish BUILD_TAG=latest VERSION=master make -e build-in-docker
|
||||
CIRCLECI=true IMAGE_NAME=gliderlabs/herokuish BUILD_TAG=latest make build/docker
|
||||
```
|
||||
|
||||
@@ -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.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/manifest.json">
|
||||
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/manifest.json">
|
||||
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/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.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/mstile-144x144.png">
|
||||
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/browserconfig.xml">
|
||||
<meta name="msapplication-TileImage" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/mstile-144x144.png">
|
||||
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/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.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/style.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/style.css" rel="stylesheet">
|
||||
<!-- <link href="/dokku/docs/assets/style.css" rel="stylesheet"> -->
|
||||
<style>
|
||||
</style>
|
||||
@@ -63,7 +63,7 @@
|
||||
<a class="nav-link" href="https://github.com/dokku/dokku/discussions">Forums</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/{{NAME}}/enterprise/pro/">Pro</a>
|
||||
<a class="nav-link" href="https://pro.dokku.com/">Pro</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -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.26.5/bootstrap.sh</span>
|
||||
<span class="command">wget https://raw.githubusercontent.com/dokku/dokku/v0.26.7/bootstrap.sh</span>
|
||||
</p>
|
||||
<p class="line">
|
||||
<span class="path"></span>
|
||||
<span class="prompt">$</span>
|
||||
<span class="command">sudo DOKKU_TAG=v0.26.5 bash bootstrap.sh</span>
|
||||
<span class="command">sudo DOKKU_TAG=v0.26.7 bash bootstrap.sh</span>
|
||||
</p>
|
||||
<p class="line">
|
||||
<span class="output"> # Configure your server domain via `dokku domains:set-global`</span>
|
||||
|
||||
@@ -61,12 +61,12 @@ cGhwPT09cGhwIHRlc3QucGhwPT09QGRhaWx5 @daily node index.js
|
||||
cGhwPT09dHJ1ZT09PSogKiAqICogKg== * * * * * true
|
||||
```
|
||||
|
||||
#### Displaying reports for an app
|
||||
#### Displaying reports
|
||||
|
||||
You can get a report about the cron configuration for apps using the `cron:report` command:
|
||||
|
||||
```shell
|
||||
dokku cron:report node-js-app
|
||||
dokku cron:report
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -9,26 +9,26 @@
|
||||
<meta name="author" content="">
|
||||
<title>Dokku - {{DOC_TITLE}}</title>
|
||||
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/manifest.json">
|
||||
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/manifest.json">
|
||||
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/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.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/mstile-144x144.png">
|
||||
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/favicons/browserconfig.xml">
|
||||
<meta name="msapplication-TileImage" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/docs/assets/favicons/mstile-144x144.png">
|
||||
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/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.jsdelivr.net/gh/dokku/dokku@v0.26.5/docs/assets/style.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.26.7/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>
|
||||
@@ -76,7 +76,7 @@
|
||||
<a class="nav-link" href="https://github.com/dokku/dokku/discussions">Forums</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/{{NAME}}/enterprise/pro/">Pro</a>
|
||||
<a class="nav-link" href="https://pro.dokku.com/">Pro</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core standard plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core events logging plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core app-json plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
2
plugins/apps/.gitignore
vendored
2
plugins/apps/.gitignore
vendored
@@ -5,3 +5,5 @@
|
||||
/app-*
|
||||
/post-*
|
||||
/report
|
||||
/install
|
||||
/deploy-source-set
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core apps plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-dockerfile plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-herokuish plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -7,7 +7,7 @@ source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
||||
trigger-builder-herokuish-pre-build-buildpack() {
|
||||
declare desc="builder-herokuish pre-build-buildpack plugin trigger"
|
||||
declare trigger="pre-build-buildpack"
|
||||
declare APP="$1"
|
||||
declare APP="$1" SOURCECODE_WORK_DIR="$2"
|
||||
local IMAGE TMP_WORK_DIR
|
||||
|
||||
local DOCKER_BUILD_LABEL_ARGS="--label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=com.dokku.app-name=$APP"
|
||||
@@ -27,7 +27,13 @@ trigger-builder-herokuish-pre-build-buildpack() {
|
||||
config_bundle --merged "$APP" | tar -x -C "$TMP_WORK_DIR/.env.d"
|
||||
|
||||
# create build env for 'old style' buildpacks and dokku plugins
|
||||
config_export app "$APP" --format envfile --merged >"$TMP_WORK_DIR/.env"
|
||||
touch "$TMP_WORK_DIR/.env"
|
||||
if [[ -f "$SOURCECODE_WORK_DIR/.env" ]]; then
|
||||
cp -f "$SOURCECODE_WORK_DIR/.env" "$TMP_WORK_DIR/.env"
|
||||
fi
|
||||
local dotenv_contents="$(sed -Ez '$ s/\n+$//' "$TMP_WORK_DIR/.env")"
|
||||
echo "$dotenv_contents" >"$TMP_WORK_DIR/.env"
|
||||
config_export app "$APP" --format envfile --merged >>"$TMP_WORK_DIR/.env"
|
||||
|
||||
if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/pre-build.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t $IMAGE "$TMP_WORK_DIR"; then
|
||||
dokku_log_warn "Failure injecting BUILD_ENV into build environment"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-null plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -28,15 +28,11 @@ trigger-builder-pack-builder-build() {
|
||||
|
||||
pushd "$SOURCECODE_WORK_DIR" &>/dev/null
|
||||
|
||||
local TMP_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
|
||||
trap "rm -rf '$TMP_FILE' >/dev/null" RETURN INT TERM
|
||||
|
||||
config_export app "$APP" --format envfile --merged >"$TMP_FILE"
|
||||
ENV_ARGS=($(config_export app "$APP" --format pack-keys --merged))
|
||||
eval "$(config_export app "$APP" --merged)"
|
||||
|
||||
plugn trigger pre-build-pack "$APP" "$SOURCECODE_WORK_DIR"
|
||||
|
||||
pack build "$IMAGE" --builder "$DOKKU_CNB_BUILDER" --path "$SOURCECODE_WORK_DIR" --default-process web
|
||||
|
||||
pack build "$IMAGE" --builder "$DOKKU_CNB_BUILDER" --path "$SOURCECODE_WORK_DIR" --default-process web "${ENV_ARGS[@]}"
|
||||
docker-image-labeler --label=com.dokku.image-stage=build --label=com.dokku.app-name=$APP --label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=dokku "$IMAGE"
|
||||
|
||||
plugn trigger post-build-pack "$APP" "$SOURCECODE_WORK_DIR"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-pack plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core buildpacks plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -148,7 +148,19 @@ func CommandSetProperty(appName string, property string, value string) error {
|
||||
|
||||
common.CommandPropertySet("buildpacks", appName, property, value, DefaultProperties, GlobalProperties)
|
||||
if property == "stack" && oldStack != value {
|
||||
return common.PlugnTrigger("post-stack-set", []string{appName, value}...)
|
||||
if appName != "--global" {
|
||||
return common.PlugnTrigger("post-stack-set", []string{appName, value}...)
|
||||
}
|
||||
|
||||
apps, err := common.DokkuApps()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, app := range apps {
|
||||
if err := common.PlugnTrigger("post-stack-set", []string{app, value}...); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core certificate management plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core checks plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core common plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -26,7 +26,7 @@ const (
|
||||
ExportFormatEnvfile
|
||||
//ExportFormatDockerArgs format: --env KEY=VALUE args for docker
|
||||
ExportFormatDockerArgs
|
||||
//ExportFormatDockerArgsKeys format: --env KEY args for docker
|
||||
//ExportFormatDockerArgsKeys format: --env=KEY args for docker
|
||||
ExportFormatDockerArgsKeys
|
||||
//ExportFormatShell format: env arguments for shell
|
||||
ExportFormatShell
|
||||
@@ -36,6 +36,8 @@ const (
|
||||
ExportFormatJSON
|
||||
//ExportFormatJSONList format: json output as a list of objects
|
||||
ExportFormatJSONList
|
||||
//ExportFormatPackArgKeys format: --env KEY args for pack
|
||||
ExportFormatPackArgKeys
|
||||
)
|
||||
|
||||
//Env is a representation for global or app environment
|
||||
@@ -183,6 +185,8 @@ func (e *Env) Export(format ExportFormat) string {
|
||||
return e.JSONString()
|
||||
case ExportFormatJSONList:
|
||||
return e.JSONListString()
|
||||
case ExportFormatPackArgKeys:
|
||||
return e.PackArgKeysAsString()
|
||||
default:
|
||||
common.LogFail(fmt.Sprintf("Unknown export format: %v", format))
|
||||
return ""
|
||||
@@ -244,6 +248,16 @@ func (e *Env) JSONListString() string {
|
||||
return string(data)
|
||||
}
|
||||
|
||||
//PackArgKeysAsString gets the contents of this Env in the form -env KEY --env...
|
||||
func (e *Env) PackArgKeysAsString() string {
|
||||
keys := e.Keys()
|
||||
entries := make([]string, len(keys))
|
||||
for i, k := range keys {
|
||||
entries[i] = fmt.Sprintf("%s%s", "--env ", k)
|
||||
}
|
||||
return strings.Join(entries, " ")
|
||||
}
|
||||
|
||||
//ShellString gets the contents of this Env in the form "KEY='value' KEY2='value'"
|
||||
// for passing the environment in the shell
|
||||
func (e *Env) ShellString() string {
|
||||
|
||||
@@ -13,14 +13,15 @@ func export(appName string, global bool, merged bool, format string) error {
|
||||
suffix := "\n"
|
||||
|
||||
exportTypes := map[string]ExportFormat{
|
||||
"exports": ExportFormatExports,
|
||||
"envfile": ExportFormatEnvfile,
|
||||
"docker-args": ExportFormatDockerArgs,
|
||||
"docker-args-keys": ExportFormatDockerArgsKeys,
|
||||
"shell": ExportFormatShell,
|
||||
"pretty": ExportFormatPretty,
|
||||
"envfile": ExportFormatEnvfile,
|
||||
"exports": ExportFormatExports,
|
||||
"json": ExportFormatJSON,
|
||||
"json-list": ExportFormatJSONList,
|
||||
"pack-keys": ExportFormatPackArgKeys,
|
||||
"pretty": ExportFormatPretty,
|
||||
"shell": ExportFormatShell,
|
||||
}
|
||||
|
||||
exportType, ok := exportTypes[format]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core config plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -49,7 +49,7 @@ func main() {
|
||||
args := flag.NewFlagSet("config:export", flag.ExitOnError)
|
||||
global := args.Bool("global", false, "--global: use the global environment")
|
||||
merged := args.Bool("merged", false, "--merged: merge app environment and global environment")
|
||||
format := args.String("format", "exports", "--format: [ exports | envfile | docker-args | docker-args-keys | shell | pretty | json | json-list ] which format to export as)")
|
||||
format := args.String("format", "exports", "--format: [ docker-args | docker-args-keys | exports | envfile | json | json-list | pack-keys | pretty | shell ] which format to export as)")
|
||||
args.Parse(os.Args[2:])
|
||||
if !*global {
|
||||
appName = args.Arg(0)
|
||||
|
||||
@@ -167,7 +167,7 @@ func writeCronEntries() error {
|
||||
command.ShowOutput = false
|
||||
out, err := command.CombinedOutput()
|
||||
if err != nil {
|
||||
return fmt.Errorf("Unable to update schedule file: %v", out)
|
||||
return fmt.Errorf("Unable to update schedule file: %s", string(out))
|
||||
}
|
||||
|
||||
common.LogInfo1("Updated schedule file")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core cron plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core docker-options plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core domains plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core enter plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core git plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core logs plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core network plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -142,8 +142,10 @@ func CommandReport(appName string, format string, infoFlag string) error {
|
||||
|
||||
// CommandSet set or clear a network property for an app
|
||||
func CommandSet(appName string, property string, value string) error {
|
||||
if err := common.VerifyAppName(appName); err != nil {
|
||||
return err
|
||||
if appName != "--global" {
|
||||
if err := common.VerifyAppName(appName); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if property == "bind-all-interfaces" && value == "" {
|
||||
|
||||
@@ -128,7 +128,11 @@ validate_nginx() {
|
||||
|
||||
restart_nginx() {
|
||||
declare desc="restart nginx for given distros"
|
||||
fn-nginx-vhosts-nginx-init-cmd "reload"
|
||||
local PROXY_ENABLED="$(plugn trigger proxy-is-enabled "$APP")"
|
||||
local PROXY_TYPE="$(plugn trigger proxy-type "$APP")"
|
||||
if [[ "$PROXY_ENABLED" == "true" ]] && [[ "$PROXY_TYPE" == "nginx" ]]; then
|
||||
fn-nginx-vhosts-nginx-init-cmd "reload"
|
||||
fi
|
||||
}
|
||||
|
||||
nginx_logs() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core nginx-vhosts plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core plugin plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core proxy plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core ps plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -135,6 +135,8 @@ func Start(appName string) error {
|
||||
|
||||
if runningState == "mixed" {
|
||||
common.LogWarn("App is running in mixed mode, releasing")
|
||||
} else if runningState == "false" {
|
||||
common.LogWarn("App has been detected as not running, releasing")
|
||||
}
|
||||
|
||||
if runningState != "true" {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core registry plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core repo plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core resource plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core run plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core scheduler-docker-local plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core scheduler-null plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core shell plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core ssh-keys plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core storage plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core trace plugin"
|
||||
version = "0.26.5"
|
||||
version = "0.26.7"
|
||||
[plugin.config]
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"express": "4.17.x",
|
||||
"connect": "*",
|
||||
"handlebars": "~4.7.1",
|
||||
"socket.io": "~4.3.0",
|
||||
"socket.io": "~4.4.0",
|
||||
"express3-handlebars": "~0.5.2"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
10
tests/apps/php/composer.lock
generated
10
tests/apps/php/composer.lock
generated
@@ -1000,16 +1000,16 @@
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "heroku/heroku-buildpack-php",
|
||||
"version": "v200",
|
||||
"version": "v205",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/heroku/heroku-buildpack-php.git",
|
||||
"reference": "ffa4d0e714439d6f54f9608a0aa16674e82ed0a1"
|
||||
"reference": "8937f4b1ab1697b12c06369ed3b0eada2525ee94"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/heroku/heroku-buildpack-php/zipball/ffa4d0e714439d6f54f9608a0aa16674e82ed0a1",
|
||||
"reference": "ffa4d0e714439d6f54f9608a0aa16674e82ed0a1",
|
||||
"url": "https://api.github.com/repos/heroku/heroku-buildpack-php/zipball/8937f4b1ab1697b12c06369ed3b0eada2525ee94",
|
||||
"reference": "8937f4b1ab1697b12c06369ed3b0eada2525ee94",
|
||||
"shasum": ""
|
||||
},
|
||||
"bin": [
|
||||
@@ -1037,7 +1037,7 @@
|
||||
"nginx",
|
||||
"php"
|
||||
],
|
||||
"time": "2021-10-28T22:02:01+00:00"
|
||||
"time": "2022-01-07T12:51:32+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
|
||||
1
tests/apps/python/.env
Normal file
1
tests/apps/python/.env
Normal file
@@ -0,0 +1 @@
|
||||
DOTENV_KEY=some_value
|
||||
3
tests/apps/python/bin/pre_compile
Executable file
3
tests/apps/python/bin/pre_compile
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
echo "Build time env var SECRET_KEY=${SECRET_KEY}"
|
||||
@@ -5,7 +5,10 @@ import os
|
||||
def main():
|
||||
print("GLOBAL_SECRET: {0}".format(os.getenv('GLOBAL_SECRET')))
|
||||
print("SECRET_KEY: {0}".format(os.getenv('SECRET_KEY')))
|
||||
|
||||
with open("/app/.env", "r") as f:
|
||||
for line in f.readlines():
|
||||
if "DOTENV_KEY" in line:
|
||||
print(line)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
19
tests/unit/builder-herokuish.bats
Normal file
19
tests/unit/builder-herokuish.bats
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
load test_helper
|
||||
|
||||
setup() {
|
||||
create_app
|
||||
}
|
||||
|
||||
teardown() {
|
||||
destroy_app
|
||||
}
|
||||
|
||||
@test "(builder-herouish:build .env)" {
|
||||
run deploy_app python dokku@dokku.me:$TEST_APP
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
assert_output_contains 'DOTENV_KEY=some_value'
|
||||
}
|
||||
@@ -15,6 +15,11 @@ teardown() {
|
||||
}
|
||||
|
||||
@test "(builder-pack:set)" {
|
||||
run /bin/bash -c "dokku config:set $TEST_APP SECRET_KEY=fjdkslafjdk"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku builder:set $TEST_APP selected pack"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
@@ -31,6 +36,7 @@ teardown() {
|
||||
assert_success
|
||||
assert_output_contains 'Building with buildpack 1' 0
|
||||
assert_output_contains 'Installing requirements with pip'
|
||||
assert_output_contains "Build time env var SECRET_KEY=fjdkslafjdk"
|
||||
|
||||
run /bin/bash -c "dokku builder-pack:set $TEST_APP projecttoml-path nonexistent.toml"
|
||||
echo "output: $output"
|
||||
|
||||
@@ -184,6 +184,13 @@ teardown() {
|
||||
assert_output "https://github.com/heroku/heroku-buildpack-golang.git https://github.com/heroku/heroku-buildpack-python.git https://github.com/heroku/heroku-buildpack-php.git"
|
||||
}
|
||||
|
||||
@test "(buildpacks) buildpacks:set-property" {
|
||||
run /bin/bash -c "dokku buildpacks:set-property --global stack gliderlabs/herokuish:latest"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "(buildpacks) buildpacks:remove" {
|
||||
run /bin/bash -c "dokku buildpacks:set $TEST_APP heroku/nodejs"
|
||||
echo "output: $output"
|
||||
|
||||
Reference in New Issue
Block a user