Compare commits

...

35 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
5ef90f7c10 Release 1.39.0
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2024-06-30 13:47:18 -04:00
Jose Diaz-Gonzalez
a85e451f6d Merge pull request #175 from dokku/dependabot/docker/mysql-8.4.0
chore(deps): bump mysql from 8.3.0 to 8.4.0
2024-06-30 13:47:09 -04:00
dependabot[bot]
00eef2f230 chore(deps): bump mysql from 8.3.0 to 8.4.0
Bumps mysql from 8.3.0 to 8.4.0.

---
updated-dependencies:
- dependency-name: mysql
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-29 07:51:51 +00:00
Jose Diaz-Gonzalez
e997179643 Merge pull request #178 from dokku/exclude-SC1091
tests: exclude SC1091 from shellcheck rules
2024-06-29 03:48:44 -04:00
Jose Diaz-Gonzalez
ef6a5ed7d1 tests: exclude SC1091 from shellcheck rules 2024-06-29 03:44:56 -04:00
Jose Diaz-Gonzalez
05f594e9ba Merge pull request #177 from dokku/fix-tests
fix: use .DNSNames instead of .Aliases in tests
2024-06-29 03:41:00 -04:00
Jose Diaz-Gonzalez
4bc23d7556 fix: use .DNSNames instead of .Aliases in tests
Docker has changed their output in an unclear manner, but this is the correct way to check for what dns records are available for usage by apps.
2024-06-29 03:25:41 -04:00
Jose Diaz-Gonzalez
579964b63d Release 1.38.1
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2024-01-29 10:10:02 -05:00
Jose Diaz-Gonzalez
78ecc3b10d fix: use correct repository on arm64 ubuntu image 2024-01-29 10:09:17 -05:00
Jose Diaz-Gonzalez
1b0cd97539 Release 1.38.0
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2024-01-29 08:34:56 -05:00
Jose Diaz-Gonzalez
3305de6dbd Merge pull request #174 from dokku/dependabot/docker/mysql-8.3.0
chore(deps): bump mysql from 8.2.0 to 8.3.0
2024-01-29 08:34:42 -05:00
dependabot[bot]
1f4d7ceeb2 chore(deps): bump mysql from 8.2.0 to 8.3.0
Bumps mysql from 8.2.0 to 8.3.0.

---
updated-dependencies:
- dependency-name: mysql
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:43:24 +00:00
Jose Diaz-Gonzalez
9f0d37450b Merge pull request #173 from dokku/dependabot/github_actions/actions/upload-artifact-4
chore(deps): bump actions/upload-artifact from 3 to 4
2023-12-19 00:25:02 -05:00
dependabot[bot]
99a5d1c2e8 chore(deps): bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 03:58:44 +00:00
Jose Diaz-Gonzalez
a181ee805e Release 1.37.1
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2023-12-09 23:56:07 -05:00
Jose Diaz-Gonzalez
709072c25e docs: update docs and generation script 2023-12-09 23:55:46 -05:00
Jose Diaz-Gonzalez
f2d6006d58 chore: fix typo 2023-12-09 13:51:12 -05:00
Jose Diaz-Gonzalez
63a51d0d31 chore: fix typo 2023-12-09 13:48:37 -05:00
Jose Diaz-Gonzalez
f59ba77174 Release 1.37.0
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2023-12-09 13:46:42 -05:00
Jose Diaz-Gonzalez
60a5f2012e Merge pull request #171 from dokku/dependabot/docker/mysql-8.2.0
chore(deps): bump mysql from 8.1.0 to 8.2.0
2023-12-09 13:46:26 -05:00
Jose Diaz-Gonzalez
b92439331e Merge pull request #172 from dokku/dependabot/github_actions/actions/setup-python-5
chore(deps): bump actions/setup-python from 4 to 5
2023-12-09 13:46:18 -05:00
dependabot[bot]
b7193d5b3e chore(deps): bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-07 03:26:19 +00:00
dependabot[bot]
c77475be54 chore(deps): bump mysql from 8.1.0 to 8.2.0
Bumps mysql from 8.1.0 to 8.2.0.

---
updated-dependencies:
- dependency-name: mysql
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:28:04 +00:00
Jose Diaz-Gonzalez
b7e16d9325 Release 1.36.0
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2023-09-09 22:39:50 -04:00
Jose Diaz-Gonzalez
d9cd2649c6 Merge pull request #169 from dokku/dependabot/github_actions/actions/checkout-4
chore(deps): bump actions/checkout from 3 to 4
2023-09-07 00:11:47 -04:00
dependabot[bot]
a36b5f001f chore(deps): bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-07 03:24:25 +00:00
Jose Diaz-Gonzalez
c505c47ef3 Merge pull request #170 from dokku/newer-ubuntu
feat: upgrade test suite from ubuntu 20.04 to 22.04
2023-09-06 23:24:04 -04:00
Jose Diaz-Gonzalez
2b497ed8b9 feat: upgrade test suite from ubuntu 20.04 to 22.04 2023-09-06 22:37:21 -04:00
Jose Diaz-Gonzalez
b778beae85 Release 1.35.0
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2023-08-05 23:23:42 -04:00
Jose Diaz-Gonzalez
d0c625e255 Merge pull request #168 from dokku/dependabot/docker/mysql-8.1.0
chore(deps): bump mysql from 8.0.34 to 8.1.0
2023-08-05 23:23:25 -04:00
dependabot[bot]
53ccb6ccd1 chore(deps): bump mysql from 8.0.34 to 8.1.0
Bumps mysql from 8.0.34 to 8.1.0.

---
updated-dependencies:
- dependency-name: mysql
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-03 03:05:04 +00:00
Jose Diaz-Gonzalez
31e89cad7d Release 1.34.1
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2023-07-30 16:09:41 -04:00
Jose Diaz-Gonzalez
8a33b6b7bc Merge pull request #167 from dokku/dependabot/docker/mysql-8.0.34
chore(deps): bump mysql from 8.0.33 to 8.0.34
2023-07-30 16:09:34 -04:00
dependabot[bot]
5f05e12f40 chore(deps): bump mysql from 8.0.33 to 8.0.34
Bumps mysql from 8.0.33 to 8.0.34.

---
updated-dependencies:
- dependency-name: mysql
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-25 03:57:05 +00:00
Jose Diaz-Gonzalez
0cd46e0572 Release 1.34.0
Some checks failed
tagged-release / tagged-release (push) Has been cancelled
2023-05-28 00:59:57 -04:00
15 changed files with 222 additions and 80 deletions

View File

@@ -17,16 +17,16 @@ concurrency:
jobs:
unit-tests-master:
name: unit-tests
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
env:
DOKKU_VERSION: master
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: '3.7.x'
@@ -51,7 +51,7 @@ jobs:
- run: make test
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
if: failure()
with:
name: tmp/test-results
@@ -59,16 +59,16 @@ jobs:
unit-tests-0_19_0:
name: unit-tests-0.19.0
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
env:
DOKKU_TAG: v0.19.0
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: '3.7.x'
@@ -93,7 +93,7 @@ jobs:
- run: make test
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
if: failure()
with:
name: tmp/test-results

View File

@@ -10,7 +10,7 @@ on:
jobs:
tagged-release:
name: tagged-release
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: "marvinpinto/action-automatic-releases@v1.2.1"

View File

@@ -1 +1 @@
FROM mysql:8.0.33
FROM mysql:8.4.0

View File

@@ -1,5 +1,6 @@
HARDWARE = $(shell uname -m)
SYSTEM_NAME = $(shell uname -s | tr '[:upper:]' '[:lower:]')
ARCH = $(shell dpkg --print-architecture)
SHFMT_VERSION = 3.0.2
XUNIT_TO_GITHUB_VERSION = 0.3.0
XUNIT_READER_VERSION = 0.1.0
@@ -21,7 +22,11 @@ ifneq ($(shell shellcheck --version >/dev/null 2>&1 ; echo $$?),0)
ifeq ($(SYSTEM_NAME),darwin)
brew install shellcheck
else
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse'
ifeq ($(ARCH),arm64)
sudo add-apt-repository 'deb http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse'
else
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse'
endif
sudo rm -rf /var/lib/apt/lists/* && sudo apt-get clean
sudo apt-get update -qq && sudo apt-get install -qq -y shellcheck
endif

View File

@@ -1,6 +1,6 @@
# dokku mysql [![Build Status](https://img.shields.io/github/actions/workflow/status/dokku/dokku-mysql/ci.yml?branch=master&style=flat-square "Build Status")](https://github.com/dokku/dokku-mysql/actions/workflows/ci.yml?query=branch%3Amaster) [![IRC Network](https://img.shields.io/badge/irc-libera-blue.svg?style=flat-square "IRC Libera")](https://webchat.libera.chat/?channels=dokku)
Official mysql plugin for dokku. Currently defaults to installing [mysql 8.0.33](https://hub.docker.com/_/mysql/).
Official mysql plugin for dokku. Currently defaults to installing [mysql 8.3.0](https://hub.docker.com/_/mysql/).
## Requirements
@@ -74,9 +74,9 @@ flags:
- `-m|--memory MEMORY`: container memory limit in megabytes (default: unlimited)
- `-N|--initial-network INITIAL_NETWORK`: the initial network to attach the service to
- `-p|--password PASSWORD`: override the user-level service password
- `-P|--post-create-network NETWORKS`: a comman-separated list of networks to attach the service container to after service creation
- `-P|--post-create-network NETWORKS`: a comma-separated list of networks to attach the service container to after service creation
- `-r|--root-password PASSWORD`: override the root-level service password
- `-S|--post-start-network NETWORKS`: a comman-separated list of networks to attach the service container to after service start
- `-S|--post-start-network NETWORKS`: a comma-separated list of networks to attach the service container to after service start
- `-s|--shm-size SHM_SIZE`: override shared memory size for mysql docker container
Create a mysql service named lollipop:
@@ -93,7 +93,7 @@ export MYSQL_IMAGE_VERSION="${PLUGIN_IMAGE_VERSION}"
dokku mysql:create lollipop
```
You can also specify custom environment variables to start the mysql service in semi-colon separated form.
You can also specify custom environment variables to start the mysql service in semicolon-separated form.
```shell
export MYSQL_CUSTOM_ENV="USER=alpha;HOST=beta"
@@ -457,9 +457,9 @@ flags:
- `-i|--image IMAGE`: the image name to start the service with
- `-I|--image-version IMAGE_VERSION`: the image version to start the service with
- `-N|--initial-network INITIAL_NETWORK`: the initial network to attach the service to
- `-P|--post-create-network NETWORKS`: a comman-separated list of networks to attach the service container to after service creation
- `-P|--post-create-network NETWORKS`: a comma-separated list of networks to attach the service container to after service creation
- `-R|--restart-apps "true"`: whether or not to force an app restart (default: false)
- `-S|--post-start-network NETWORKS`: a comman-separated list of networks to attach the service container to after service start
- `-S|--post-start-network NETWORKS`: a comma-separated list of networks to attach the service container to after service start
- `-s|--shm-size SHM_SIZE`: override shared memory size for mysql docker container
You can upgrade an existing service to a new image or image-version:
@@ -501,9 +501,9 @@ flags:
- `-m|--memory MEMORY`: container memory limit in megabytes (default: unlimited)
- `-N|--initial-network INITIAL_NETWORK`: the initial network to attach the service to
- `-p|--password PASSWORD`: override the user-level service password
- `-P|--post-create-network NETWORKS`: a comman-separated list of networks to attach the service container to after service creation
- `-P|--post-create-network NETWORKS`: a comma-separated list of networks to attach the service container to after service creation
- `-r|--root-password PASSWORD`: override the root-level service password
- `-S|--post-start-network NETWORKS`: a comman-separated list of networks to attach the service container to after service start
- `-S|--post-start-network NETWORKS`: a comma-separated list of networks to attach the service container to after service start
- `-s|--shm-size SHM_SIZE`: override shared memory size for mysql docker container
You can clone an existing service to a new one:

2
Vagrantfile vendored
View File

@@ -1,7 +1,7 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-20.04"
BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-22.04"
BOX_MEMORY = ENV["BOX_MEMORY"] || "2048"
DOKKU_VERSION = "master"

View File

@@ -1,15 +1,30 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import print_function
import os
import re
def compile(service, version, variable, alias, image, scheme, ports, sponsors, options, unimplemented, dokku_version):
prefix = "\n\n".join([
def compile(
service,
version,
variable,
alias,
image,
scheme,
ports,
sponsors,
options,
unimplemented,
dokku_version,
):
prefix = "\n\n".join(
[
header(service),
description(service, image, version),
])
]
)
if len(sponsors) > 0:
prefix += "\n\n"
@@ -21,8 +36,19 @@ def compile(service, version, variable, alias, image, scheme, ports, sponsors, o
prefix,
requirements_section(dokku_version),
installation_section(service, dokku_version),
commands_section(service, variable, alias, image, scheme, ports, unimplemented),
usage_section(service, variable, alias, image, scheme, ports, options, unimplemented),
commands_section(
service, variable, alias, image, scheme, ports, unimplemented
),
usage_section(
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
),
]
)
.replace("\n\n\n\n\n", "\n")
@@ -55,17 +81,25 @@ def sponsors_section(service, sponsors):
if len(sponsors) == 0:
return ""
sponsor_data = ["## Sponsors", "", f"The {service} plugin was generously sponsored by the following:", ""]
sponsor_data = [
"## Sponsors",
"",
f"The {service} plugin was generously sponsored by the following:",
"",
]
sponsor_data.extend([f"- [{s}](https://github.com/{s})" for s in sponsors])
return "\n".join(
sponsor_data
)
return "\n".join(sponsor_data)
def requirements_section(dokku_version):
return "\n".join(
["## Requirements", "", f"- dokku {dokku_version}", "- docker 1.8.x",]
[
"## Requirements",
"",
f"- dokku {dokku_version}",
"- docker 1.8.x",
]
)
@@ -115,17 +149,31 @@ def commands_section(service, variable, alias, image, scheme, ports, unimplement
return "\n".join(content)
def usage_section(service, variable, alias, image, scheme, ports, options, unimplemented):
def usage_section(
service, variable, alias, image, scheme, ports, options, unimplemented
):
return "\n\n".join(
[
"## Usage",
f"Help for any commands can be displayed by specifying the command as an argument to {service}:help. Plugin help output in conjunction with any files in the `docs/` folder is used to generate the plugin documentation. Please consult the `{service}:help` command for any undocumented commands.",
usage_intro(service, variable, alias, image, scheme, ports, options, unimplemented),
usage_lifecycle(service, variable, alias, image, scheme, ports, options, unimplemented),
usage_automation(service, variable, alias, image, scheme, ports, options, unimplemented),
usage_data_management(service, variable, alias, image, scheme, ports, options, unimplemented),
usage_backup(service, variable, alias, image, scheme, ports, options, unimplemented),
usage_docker_pull(service, variable, alias, image, scheme, ports, options, unimplemented),
usage_intro(
service, variable, alias, image, scheme, ports, options, unimplemented
),
usage_lifecycle(
service, variable, alias, image, scheme, ports, options, unimplemented
),
usage_automation(
service, variable, alias, image, scheme, ports, options, unimplemented
),
usage_data_management(
service, variable, alias, image, scheme, ports, options, unimplemented
),
usage_backup(
service, variable, alias, image, scheme, ports, options, unimplemented
),
usage_docker_pull(
service, variable, alias, image, scheme, ports, options, unimplemented
),
]
)
@@ -135,11 +183,22 @@ def usage_intro(service, variable, alias, image, scheme, ports, options, unimple
content = ["### Basic Usage"]
return fetch_commands_content(
service, variable, alias, image, scheme, ports, options, unimplemented, commands, content
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
commands,
content,
)
def usage_lifecycle(service, variable, alias, image, scheme, ports, options, unimplemented):
def usage_lifecycle(
service, variable, alias, image, scheme, ports, options, unimplemented
):
commands = [
"connect",
"enter",
@@ -160,11 +219,22 @@ def usage_lifecycle(service, variable, alias, image, scheme, ports, options, uni
]
return fetch_commands_content(
service, variable, alias, image, scheme, ports, options, unimplemented, commands, content
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
commands,
content,
)
def usage_automation(service, variable, alias, image, scheme, ports, options, unimplemented):
def usage_automation(
service, variable, alias, image, scheme, ports, options, unimplemented
):
commands = ["app-links", "clone", "exists", "linked", "links"]
content = [
"### Service Automation",
@@ -174,11 +244,22 @@ def usage_automation(service, variable, alias, image, scheme, ports, options, un
]
return fetch_commands_content(
service, variable, alias, image, scheme, ports, options, unimplemented, commands, content
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
commands,
content,
)
def usage_data_management(service, variable, alias, image, scheme, ports, options, unimplemented):
def usage_data_management(
service, variable, alias, image, scheme, ports, options, unimplemented
):
commands = ["import", "export"]
content = [
"### Data Management",
@@ -188,11 +269,22 @@ def usage_data_management(service, variable, alias, image, scheme, ports, option
]
return fetch_commands_content(
service, variable, alias, image, scheme, ports, options, unimplemented, commands, content
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
commands,
content,
)
def usage_backup(service, variable, alias, image, scheme, ports, options, unimplemented):
def usage_backup(
service, variable, alias, image, scheme, ports, options, unimplemented
):
commands = [
"backup-auth",
"backup-deauth",
@@ -215,11 +307,22 @@ def usage_backup(service, variable, alias, image, scheme, ports, options, unimpl
]
return fetch_commands_content(
service, variable, alias, image, scheme, ports, options, unimplemented, commands, content
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
commands,
content,
)
def usage_docker_pull(service, variable, alias, image, scheme, ports, options, unimplemented):
def usage_docker_pull(
service, variable, alias, image, scheme, ports, options, unimplemented
):
service_prefix = service.upper()
return "\n".join(
[
@@ -233,11 +336,30 @@ def usage_docker_pull(service, variable, alias, image, scheme, ports, options, u
def fetch_commands_content(
service, variable, alias, image, scheme, ports, options, unimplemented, commands, content
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
commands,
content,
):
i = 0
for command in commands:
output = command_help(command, service, variable, alias, image, scheme, ports, options, unimplemented)
output = command_help(
command,
service,
variable,
alias,
image,
scheme,
ports,
options,
unimplemented,
)
if output == "":
continue
content.append(output)
@@ -275,7 +397,9 @@ def parse_args(line):
return " ".join(arguments)
def command_help(command, service, variable, alias, image, scheme, ports, options, unimplemented):
def command_help(
command, service, variable, alias, image, scheme, ports, options, unimplemented
):
if command in unimplemented:
return ""
@@ -285,7 +409,7 @@ def command_help(command, service, variable, alias, image, scheme, ports, option
"",
"```shell",
"# usage",
f"dokku {service}:{command} {data['arguments_string']}",
f"dokku {service}:{command} {data['arguments_string']}".strip(),
"```",
]
@@ -442,11 +566,11 @@ def process_sentence(sentence_lines):
parts = []
for word in sentence.strip().split(" "):
if word.isupper() and len(word) > 1:
for ending in [':', '.']:
for ending in [":", "."]:
if word.endswith(ending):
word = '`{0}`{1}'.format(word[:-1], ending)
word = "`{0}`{1}".format(word[:-1], ending)
else:
word = '`{0}`'.format(word)
word = "`{0}`".format(word)
parts.append(word)
text.append(" ".join(parts))
@@ -524,10 +648,22 @@ def main():
with open("plugin.toml") as f:
for line in f.readlines():
if line.startswith("sponsors"):
sponsors = re.search("\[([\"\w\s,_-]+)\]", line).group(1)
sponsors = [s.strip("\"") for s in sponsors.split(",")]
sponsors = re.search('\[(["\w\s,_-]+)\]', line).group(1)
sponsors = [s.strip('"') for s in sponsors.split(",")]
text = compile(service, version, variable, alias, image, scheme, ports, sponsors, options, unimplemented, "0.19.x+")
text = compile(
service,
version,
variable,
alias,
image,
scheme,
ports,
sponsors,
options,
unimplemented,
"0.19.x+",
)
base_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
readme_file = os.path.join(base_path, "README.md")

View File

@@ -457,7 +457,7 @@ service_container_rm() {
local ID
service_pause "$SERVICE"
ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$") || true
# this may be 'true' in tests...
if [[ -z "$ID" ]] || [[ "$ID" == "true" ]]; then
return 0
@@ -939,7 +939,7 @@ service_pause() {
declare SERVICE="$1"
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
local SERVICE_NAME="$(get_service_name "$SERVICE")"
local ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
local ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "name=^/$SERVICE_NAME$") || true
[[ -z $ID ]] && dokku_log_warn "Service is already paused" && return 0
if [[ -n $ID ]]; then

View File

@@ -196,7 +196,7 @@ service_start() {
local QUIET="$2"
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
local SERVICE_NAME="$(get_service_name "$SERVICE")"
local ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "status=running" --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
local ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "status=running" --filter "name=^/$SERVICE_NAME$") || true
if [[ -n $ID ]]; then
[[ -z $QUIET ]] && dokku_log_warn "Service is already started"
if [[ ! -f "$SERVICE_ROOT/ID" ]] || [[ "$(cat "$SERVICE_ROOT/ID")" != "$ID" ]]; then
@@ -207,7 +207,7 @@ service_start() {
fi
dokku_log_info2_quiet "Starting container"
local PREVIOUS_ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "status=exited" --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
local PREVIOUS_ID=$("$DOCKER_BIN" container ps -aq --no-trunc --filter "status=exited" --filter "name=^/$SERVICE_NAME$") || true
local ROOTPASSWORD="$(service_root_password "$SERVICE")"
local PASSWORD="$(service_password "$SERVICE")"

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku mysql service plugin"
version = "1.32.2"
version = "1.39.0"
[plugin.config]

View File

@@ -17,9 +17,9 @@ service-clone-cmd() {
#F -m|--memory MEMORY, container memory limit in megabytes (default: unlimited)
#F -N|--initial-network INITIAL_NETWORK, the initial network to attach the service to
#F -p|--password PASSWORD, override the user-level service password
#F -P|--post-create-network NETWORKS, a comman-separated list of networks to attach the service container to after service creation
#F -P|--post-create-network NETWORKS, a comma-separated list of networks to attach the service container to after service creation
#F -r|--root-password PASSWORD, override the root-level service password
#F -S|--post-start-network NETWORKS, a comman-separated list of networks to attach the service container to after service start
#F -S|--post-start-network NETWORKS, a comma-separated list of networks to attach the service container to after service start
#F -s|--shm-size SHM_SIZE, override shared memory size for $PLUGIN_COMMAND_PREFIX docker container
declare desc="create container <new-name> then copy data from <name> into <new-name>"
local cmd="$PLUGIN_COMMAND_PREFIX:clone" argv=("$@")

View File

@@ -14,7 +14,7 @@ service-create-cmd() {
#E export ${PLUGIN_VARIABLE}_IMAGE_VERSION="${PLUGIN_IMAGE_VERSION}"
#E dokku $PLUGIN_COMMAND_PREFIX:create lollipop
#E you can also specify custom environment variables to start
#E the ${PLUGIN_COMMAND_PREFIX} service in semi-colon separated form.
#E the ${PLUGIN_COMMAND_PREFIX} service in semicolon-separated form.
#E export ${PLUGIN_VARIABLE}_CUSTOM_ENV="USER=alpha;HOST=beta"
#E dokku $PLUGIN_COMMAND_PREFIX:create lollipop
#A service, service to run command against
@@ -25,9 +25,9 @@ service-create-cmd() {
#F -m|--memory MEMORY, container memory limit in megabytes (default: unlimited)
#F -N|--initial-network INITIAL_NETWORK, the initial network to attach the service to
#F -p|--password PASSWORD, override the user-level service password
#F -P|--post-create-network NETWORKS, a comman-separated list of networks to attach the service container to after service creation
#F -P|--post-create-network NETWORKS, a comma-separated list of networks to attach the service container to after service creation
#F -r|--root-password PASSWORD, override the root-level service password
#F -S|--post-start-network NETWORKS, a comman-separated list of networks to attach the service container to after service start
#F -S|--post-start-network NETWORKS, a comma-separated list of networks to attach the service container to after service start
#F -s|--shm-size SHM_SIZE, override shared memory size for $PLUGIN_COMMAND_PREFIX docker container
declare desc="create a $PLUGIN_SERVICE service"
local cmd="$PLUGIN_COMMAND_PREFIX:create" argv=("$@")

View File

@@ -15,9 +15,9 @@ service-upgrade-cmd() {
#F -i|--image IMAGE, the image name to start the service with
#F -I|--image-version IMAGE_VERSION, the image version to start the service with
#F -N|--initial-network INITIAL_NETWORK, the initial network to attach the service to
#F -P|--post-create-network NETWORKS, a comman-separated list of networks to attach the service container to after service creation
#F -P|--post-create-network NETWORKS, a comma-separated list of networks to attach the service container to after service creation
#F -R|--restart-apps "true", whether or not to force an app restart (default: false)
#F -S|--post-start-network NETWORKS, a comman-separated list of networks to attach the service container to after service start
#F -S|--post-start-network NETWORKS, a comma-separated list of networks to attach the service container to after service start
#F -s|--shm-size SHM_SIZE, override shared memory size for $PLUGIN_COMMAND_PREFIX docker container
declare desc="upgrade service <service> to the specified versions"
local cmd="$PLUGIN_COMMAND_PREFIX:upgrade" argv=("$@")

View File

@@ -48,7 +48,7 @@ teardown() {
assert_output_contains bridge 0
assert_output_contains custom-network
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
echo "output: $output"
echo "status: $status"
assert_success
@@ -120,7 +120,7 @@ teardown() {
assert_output_contains custom-network
assert_output_contains bridge
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
echo "output: $output"
echo "status: $status"
assert_success
@@ -192,7 +192,7 @@ teardown() {
assert_output_contains bridge
assert_output_contains custom-network
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.ls -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
echo "output: $output"
echo "status: $status"
assert_success
@@ -258,7 +258,7 @@ teardown() {
assert_output_contains bridge
assert_output_contains custom-network
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.lsa -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.Aliases}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
run docker inspect dokku.$PLUGIN_COMMAND_PREFIX.lsa -f '{{range $net,$v := .NetworkSettings.Networks}}{{range $k,$alias := $v.DNSNames}}{{printf "alias:%s\n" $alias}}{{end}}{{end}}'
echo "output: $output"
echo "status: $status"
assert_success

View File

@@ -1,4 +1,5 @@
# SC1090 - Can't follow non-constant source. Use a directive to specify location - https://github.com/koalaman/shellcheck/wiki/SC1090
# SC1091 - Not following - <https://github.com/koalaman/shellcheck/wiki/SC1091>
# SC2034 - Variable appears unused. Verify it or export it - https://github.com/koalaman/shellcheck/wiki/SC2034
# SC2155 - Declare and assign separately to avoid masking return values - https://github.com/koalaman/shellcheck/wiki/SC2155
# SC2206 - Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a - https://github.com/koalaman/shellcheck/wiki/SC2206