Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9266302c4c | |||
| 755dce7bc4 | |||
| dd3e38ae55 | |||
| 9dfaa2d20f | |||
| d6a4ff23e2 | |||
| c2ab7e2c1f | |||
| b9e4662dbb | |||
| 10df0a527f | |||
| 9aad3688e1 | |||
| e78dbcb5d4 | |||
| 5e8cd09f51 | |||
| 22f65a9364 | |||
| 81b7432044 | |||
| d49b90d9f2 | |||
| 9face9cf35 | |||
| 33ac34296e | |||
| 670ffcd489 | |||
| ec7b365c31 | |||
| 433d78c7ff | |||
| ed041fdca6 | |||
| b8e4ed2369 |
Generated
-17
@@ -1937,23 +1937,6 @@
|
|||||||
"from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz",
|
"from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz",
|
||||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
|
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
|
||||||
},
|
},
|
||||||
"nodejs-disks": {
|
|
||||||
"version": "0.2.1",
|
|
||||||
"from": "https://registry.npmjs.org/nodejs-disks/-/nodejs-disks-0.2.1.tgz",
|
|
||||||
"resolved": "https://registry.npmjs.org/nodejs-disks/-/nodejs-disks-0.2.1.tgz",
|
|
||||||
"dependencies": {
|
|
||||||
"async": {
|
|
||||||
"version": "0.2.10",
|
|
||||||
"from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
|
|
||||||
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
|
|
||||||
},
|
|
||||||
"numeral": {
|
|
||||||
"version": "1.4.8",
|
|
||||||
"from": "https://registry.npmjs.org/numeral/-/numeral-1.4.8.tgz",
|
|
||||||
"resolved": "https://registry.npmjs.org/numeral/-/numeral-1.4.8.tgz"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nodemailer": {
|
"nodemailer": {
|
||||||
"version": "1.3.4",
|
"version": "1.3.4",
|
||||||
"from": "https://registry.npmjs.org/nodemailer/-/nodemailer-1.3.4.tgz",
|
"from": "https://registry.npmjs.org/nodemailer/-/nodemailer-1.3.4.tgz",
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
"mysql": "^2.7.0",
|
"mysql": "^2.7.0",
|
||||||
"native-dns": "^0.7.0",
|
"native-dns": "^0.7.0",
|
||||||
"node-uuid": "^1.4.3",
|
"node-uuid": "^1.4.3",
|
||||||
"nodejs-disks": "^0.2.1",
|
|
||||||
"nodemailer": "^1.3.0",
|
"nodemailer": "^1.3.0",
|
||||||
"nodemailer-smtp-transport": "^1.0.3",
|
"nodemailer-smtp-transport": "^1.0.3",
|
||||||
"oauth2orize": "^1.0.1",
|
"oauth2orize": "^1.0.1",
|
||||||
|
|||||||
+12
-1
@@ -3,4 +3,15 @@
|
|||||||
# If you change the infra version, be sure to put a warning
|
# If you change the infra version, be sure to put a warning
|
||||||
# in the change log
|
# in the change log
|
||||||
|
|
||||||
INFRA_VERSION=5
|
INFRA_VERSION=8
|
||||||
|
|
||||||
|
# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
|
||||||
|
# These constants are used in the installer script as well
|
||||||
|
BASE_IMAGE=cloudron/base:0.3.1
|
||||||
|
MYSQL_IMAGE=cloudron/mysql:0.3.2
|
||||||
|
POSTGRESQL_IMAGE=cloudron/postgresql:0.3.1
|
||||||
|
MONGODB_IMAGE=cloudron/mongodb:0.3.1
|
||||||
|
REDIS_IMAGE=cloudron/redis:0.3.1 # if you change this, fix src/addons.js as well
|
||||||
|
MAIL_IMAGE=cloudron/mail:0.3.1
|
||||||
|
GRAPHITE_IMAGE=cloudron/graphite:0.3.3
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ ln -sfF "${DATA_DIR}/collectd" /etc/collectd
|
|||||||
unlink /etc/nginx 2>/dev/null || rm -rf /etc/nginx
|
unlink /etc/nginx 2>/dev/null || rm -rf /etc/nginx
|
||||||
ln -s "${DATA_DIR}/nginx" /etc/nginx
|
ln -s "${DATA_DIR}/nginx" /etc/nginx
|
||||||
|
|
||||||
|
########## mysql
|
||||||
|
cp "${container_files}/mysql.cnf" /etc/mysql/mysql.cnf
|
||||||
|
|
||||||
########## Enable services
|
########## Enable services
|
||||||
update-rc.d -f collectd defaults
|
update-rc.d -f collectd defaults
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
!includedir /etc/mysql/conf.d/
|
||||||
|
!includedir /etc/mysql/mysql.conf.d/
|
||||||
|
|
||||||
|
# http://bugs.mysql.com/bug.php?id=68514
|
||||||
|
[mysqld]
|
||||||
|
performance_schema=OFF
|
||||||
|
max_connection=50
|
||||||
@@ -56,6 +56,9 @@ echo "{ \"version\": \"${arg_version}\", \"boxVersionsUrl\": \"${arg_box_version
|
|||||||
echo "Cleaning up snapshots"
|
echo "Cleaning up snapshots"
|
||||||
find "${DATA_DIR}/snapshots" -mindepth 1 -maxdepth 1 | xargs --no-run-if-empty btrfs subvolume delete
|
find "${DATA_DIR}/snapshots" -mindepth 1 -maxdepth 1 | xargs --no-run-if-empty btrfs subvolume delete
|
||||||
|
|
||||||
|
# restart mysql to make sure it has latest config
|
||||||
|
service mysql restart
|
||||||
|
|
||||||
readonly mysql_root_password="password"
|
readonly mysql_root_password="password"
|
||||||
mysqladmin -u root -ppassword password password # reset default root password
|
mysqladmin -u root -ppassword password password # reset default root password
|
||||||
mysql -u root -p${mysql_root_password} -e 'CREATE DATABASE IF NOT EXISTS box'
|
mysql -u root -p${mysql_root_password} -e 'CREATE DATABASE IF NOT EXISTS box'
|
||||||
@@ -86,6 +89,10 @@ EOF
|
|||||||
|
|
||||||
set_progress "28" "Setup collectd"
|
set_progress "28" "Setup collectd"
|
||||||
cp "${script_dir}/start/collectd.conf" "${DATA_DIR}/collectd/collectd.conf"
|
cp "${script_dir}/start/collectd.conf" "${DATA_DIR}/collectd/collectd.conf"
|
||||||
|
# collectd 5.4.1 has some bug where we simply cannot get it to create df-vda1
|
||||||
|
mkdir -p "${DATA_DIR}/graphite/whisper/collectd/localhost/"
|
||||||
|
vda1_id=$(blkid -s UUID -o value /dev/vda1)
|
||||||
|
ln -sfF "df-disk_by-uuid_${vda1_id}" "${DATA_DIR}/graphite/whisper/collectd/localhost/df-vda1"
|
||||||
service collectd restart
|
service collectd restart
|
||||||
|
|
||||||
set_progress "30" "Setup nginx"
|
set_progress "30" "Setup nginx"
|
||||||
|
|||||||
@@ -193,12 +193,11 @@ LoadPlugin write_graphite
|
|||||||
</Plugin>
|
</Plugin>
|
||||||
|
|
||||||
<Plugin df>
|
<Plugin df>
|
||||||
Device "/dev/vda1"
|
FSType "tmpfs"
|
||||||
Device "/dev/loop0"
|
MountPoint "/dev"
|
||||||
Device "/dev/loop1"
|
|
||||||
|
|
||||||
ReportByDevice true
|
ReportByDevice true
|
||||||
IgnoreSelected false
|
IgnoreSelected true
|
||||||
|
|
||||||
ValuesAbsolute true
|
ValuesAbsolute true
|
||||||
ValuesPercentage true
|
ValuesPercentage true
|
||||||
|
|||||||
@@ -27,11 +27,13 @@ if [[ -n "${existing_containers}" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# graphite
|
# graphite
|
||||||
docker run --restart=always -d --name="graphite" \
|
graphite_container_id=$(docker run --restart=always -d --name="graphite" \
|
||||||
-p 127.0.0.1:2003:2003 \
|
-p 127.0.0.1:2003:2003 \
|
||||||
-p 127.0.0.1:2004:2004 \
|
-p 127.0.0.1:2004:2004 \
|
||||||
-p 127.0.0.1:8000:8000 \
|
-p 127.0.0.1:8000:8000 \
|
||||||
-v "${DATA_DIR}/graphite:/app/data" cloudron/graphite:0.3.1
|
-v "${DATA_DIR}/graphite:/app/data" \
|
||||||
|
"${GRAPHITE_IMAGE}")
|
||||||
|
echo "Graphite container id: ${graphite_container_id}"
|
||||||
|
|
||||||
# mail
|
# mail
|
||||||
mail_container_id=$(docker run --restart=always -d --name="mail" \
|
mail_container_id=$(docker run --restart=always -d --name="mail" \
|
||||||
@@ -39,7 +41,7 @@ mail_container_id=$(docker run --restart=always -d --name="mail" \
|
|||||||
-h "${arg_fqdn}" \
|
-h "${arg_fqdn}" \
|
||||||
-e "DOMAIN_NAME=${arg_fqdn}" \
|
-e "DOMAIN_NAME=${arg_fqdn}" \
|
||||||
-v "${DATA_DIR}/box/mail:/app/data" \
|
-v "${DATA_DIR}/box/mail:/app/data" \
|
||||||
cloudron/mail:0.3.0)
|
"${MAIL_IMAGE}")
|
||||||
echo "Mail container id: ${mail_container_id}"
|
echo "Mail container id: ${mail_container_id}"
|
||||||
|
|
||||||
# mysql
|
# mysql
|
||||||
@@ -53,7 +55,7 @@ mysql_container_id=$(docker run --restart=always -d --name="mysql" \
|
|||||||
-h "${arg_fqdn}" \
|
-h "${arg_fqdn}" \
|
||||||
-v "${DATA_DIR}/mysql:/var/lib/mysql" \
|
-v "${DATA_DIR}/mysql:/var/lib/mysql" \
|
||||||
-v "${DATA_DIR}/addons/mysql_vars.sh:/etc/mysql/mysql_vars.sh:ro" \
|
-v "${DATA_DIR}/addons/mysql_vars.sh:/etc/mysql/mysql_vars.sh:ro" \
|
||||||
cloudron/mysql:0.3.0)
|
"${MYSQL_IMAGE}")
|
||||||
echo "MySQL container id: ${mysql_container_id}"
|
echo "MySQL container id: ${mysql_container_id}"
|
||||||
|
|
||||||
# postgresql
|
# postgresql
|
||||||
@@ -65,7 +67,7 @@ postgresql_container_id=$(docker run --restart=always -d --name="postgresql" \
|
|||||||
-h "${arg_fqdn}" \
|
-h "${arg_fqdn}" \
|
||||||
-v "${DATA_DIR}/postgresql:/var/lib/postgresql" \
|
-v "${DATA_DIR}/postgresql:/var/lib/postgresql" \
|
||||||
-v "${DATA_DIR}/addons/postgresql_vars.sh:/etc/postgresql/postgresql_vars.sh:ro" \
|
-v "${DATA_DIR}/addons/postgresql_vars.sh:/etc/postgresql/postgresql_vars.sh:ro" \
|
||||||
cloudron/postgresql:0.3.0)
|
"${POSTGRESQL_IMAGE}")
|
||||||
echo "PostgreSQL container id: ${postgresql_container_id}"
|
echo "PostgreSQL container id: ${postgresql_container_id}"
|
||||||
|
|
||||||
# mongodb
|
# mongodb
|
||||||
@@ -77,7 +79,7 @@ mongodb_container_id=$(docker run --restart=always -d --name="mongodb" \
|
|||||||
-h "${arg_fqdn}" \
|
-h "${arg_fqdn}" \
|
||||||
-v "${DATA_DIR}/mongodb:/var/lib/mongodb" \
|
-v "${DATA_DIR}/mongodb:/var/lib/mongodb" \
|
||||||
-v "${DATA_DIR}/addons/mongodb_vars.sh:/etc/mongodb_vars.sh:ro" \
|
-v "${DATA_DIR}/addons/mongodb_vars.sh:/etc/mongodb_vars.sh:ro" \
|
||||||
cloudron/mongodb:0.3.0)
|
"${MONGODB_IMAGE}")
|
||||||
echo "Mongodb container id: ${mongodb_container_id}"
|
echo "Mongodb container id: ${mongodb_container_id}"
|
||||||
|
|
||||||
if [[ "${infra_version}" == "none" ]]; then
|
if [[ "${infra_version}" == "none" ]]; then
|
||||||
|
|||||||
+1
-1
@@ -665,7 +665,7 @@ function setupRedis(app, callback) {
|
|||||||
name: 'redis-' + app.id,
|
name: 'redis-' + app.id,
|
||||||
Hostname: config.appFqdn(app.location),
|
Hostname: config.appFqdn(app.location),
|
||||||
Tty: true,
|
Tty: true,
|
||||||
Image: 'cloudron/redis:0.3.0',
|
Image: 'cloudron/redis:0.3.1',
|
||||||
Cmd: null,
|
Cmd: null,
|
||||||
Volumes: {},
|
Volumes: {},
|
||||||
VolumesFrom: []
|
VolumesFrom: []
|
||||||
|
|||||||
+3
-5
@@ -201,11 +201,8 @@ function createContainer(app, callback) {
|
|||||||
Tty: true,
|
Tty: true,
|
||||||
Image: app.manifest.dockerImage,
|
Image: app.manifest.dockerImage,
|
||||||
Cmd: null,
|
Cmd: null,
|
||||||
Volumes: {},
|
|
||||||
VolumesFrom: [],
|
|
||||||
Env: env.concat(addonEnv),
|
Env: env.concat(addonEnv),
|
||||||
ExposedPorts: exposedPorts,
|
ExposedPorts: exposedPorts
|
||||||
CpuShares: 512 // relative to 1024 for system processes
|
|
||||||
};
|
};
|
||||||
|
|
||||||
debugApp(app, 'Creating container for %s', app.manifest.dockerImage);
|
debugApp(app, 'Creating container for %s', app.manifest.dockerImage);
|
||||||
@@ -342,7 +339,8 @@ function startContainer(app, callback) {
|
|||||||
RestartPolicy: {
|
RestartPolicy: {
|
||||||
"Name": "always",
|
"Name": "always",
|
||||||
"MaximumRetryCount": 0
|
"MaximumRetryCount": 0
|
||||||
}
|
},
|
||||||
|
CpuShares: 512 // relative to 1024 for system processes
|
||||||
};
|
};
|
||||||
|
|
||||||
var container = docker.getContainer(app.containerId);
|
var container = docker.getContainer(app.containerId);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
LoadPlugin "table"
|
LoadPlugin "table"
|
||||||
<Plugin table>
|
<Plugin table>
|
||||||
<Table "/sys/fs/cgroup/memory/docker/<%= containerId %>/memory.stat">
|
<Table "/sys/fs/cgroup/memory/system.slice/docker-<%= containerId %>.scope/memory.stat">
|
||||||
Instance "<%= appId %>-memory"
|
Instance "<%= appId %>-memory"
|
||||||
Separator " \\n"
|
Separator " \\n"
|
||||||
<Result>
|
<Result>
|
||||||
@@ -10,7 +10,7 @@ LoadPlugin "table"
|
|||||||
</Result>
|
</Result>
|
||||||
</Table>
|
</Table>
|
||||||
|
|
||||||
<Table "/sys/fs/cgroup/memory/docker/<%= containerId %>/memory.max_usage_in_bytes">
|
<Table "/sys/fs/cgroup/memory/system.slice/docker-<%= containerId %>.scope/memory.max_usage_in_bytes">
|
||||||
Instance "<%= appId %>-memory"
|
Instance "<%= appId %>-memory"
|
||||||
Separator "\\n"
|
Separator "\\n"
|
||||||
<Result>
|
<Result>
|
||||||
@@ -20,7 +20,7 @@ LoadPlugin "table"
|
|||||||
</Result>
|
</Result>
|
||||||
</Table>
|
</Table>
|
||||||
|
|
||||||
<Table "/sys/fs/cgroup/cpuacct/docker/<%= containerId %>/cpuacct.stat">
|
<Table "/sys/fs/cgroup/cpuacct/system.slice/docker-<%= containerId %>.scope/cpuacct.stat">
|
||||||
Instance "<%= appId %>-cpu"
|
Instance "<%= appId %>-cpu"
|
||||||
Separator " \\n"
|
Separator " \\n"
|
||||||
<Result>
|
<Result>
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
set -eu -o pipefail
|
set -eu -o pipefail
|
||||||
|
|
||||||
|
readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
|
||||||
|
|
||||||
|
source ${SOURCE_DIR}/setup/INFRA_VERSION
|
||||||
|
|
||||||
readonly mysqldatadir="/tmp/mysqldata-$(date +%s)"
|
readonly mysqldatadir="/tmp/mysqldata-$(date +%s)"
|
||||||
readonly postgresqldatadir="/tmp/postgresqldata-$(date +%s)"
|
readonly postgresqldatadir="/tmp/postgresqldata-$(date +%s)"
|
||||||
readonly mongodbdatadir="/tmp/mongodbdata-$(date +%s)"
|
readonly mongodbdatadir="/tmp/mongodbdata-$(date +%s)"
|
||||||
@@ -20,7 +24,7 @@ start_postgresql() {
|
|||||||
|
|
||||||
docker rm -f postgresql 2>/dev/null 1>&2 || true
|
docker rm -f postgresql 2>/dev/null 1>&2 || true
|
||||||
|
|
||||||
docker run -dtP --name=postgresql -v "${postgresqldatadir}:/var/lib/postgresql" -v /tmp/postgresql_vars.sh:/etc/postgresql/postgresql_vars.sh cloudron/postgresql:0.3.0 >/dev/null
|
docker run -dtP --name=postgresql -v "${postgresqldatadir}:/var/lib/postgresql" -v /tmp/postgresql_vars.sh:/etc/postgresql/postgresql_vars.sh "${POSTGRESQL_IMAGE}" >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
start_mysql() {
|
start_mysql() {
|
||||||
@@ -36,7 +40,7 @@ start_mysql() {
|
|||||||
|
|
||||||
docker rm -f mysql 2>/dev/null 1>&2 || true
|
docker rm -f mysql 2>/dev/null 1>&2 || true
|
||||||
|
|
||||||
docker run -dP --name=mysql -v "${mysqldatadir}:/var/lib/mysql" -v /tmp/mysql_vars.sh:/etc/mysql/mysql_vars.sh cloudron/mysql:0.3.0 >/dev/null
|
docker run -dP --name=mysql -v "${mysqldatadir}:/var/lib/mysql" -v /tmp/mysql_vars.sh:/etc/mysql/mysql_vars.sh "${MYSQL_IMAGE}" >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
start_mongodb() {
|
start_mongodb() {
|
||||||
@@ -52,7 +56,7 @@ start_mongodb() {
|
|||||||
|
|
||||||
docker rm -f mongodb 2>/dev/null 1>&2 || true
|
docker rm -f mongodb 2>/dev/null 1>&2 || true
|
||||||
|
|
||||||
docker run -dP --name=mongodb -v "${mongodbdatadir}:/var/lib/mongodb" -v /tmp/mongodb_vars.sh:/etc/mongodb_vars.sh cloudron/mongodb:0.3.0 >/dev/null
|
docker run -dP --name=mongodb -v "${mongodbdatadir}:/var/lib/mongodb" -v /tmp/mongodb_vars.sh:/etc/mongodb_vars.sh "${MONGODB_IMAGE}" >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
start_mysql
|
start_mysql
|
||||||
|
|||||||
+21
-19
@@ -2,22 +2,24 @@
|
|||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||||
|
|
||||||
|
source ${SOURCE_DIR}/setup/INFRA_VERSION
|
||||||
|
|
||||||
# reset sudo timestamp to avoid wrong success
|
# reset sudo timestamp to avoid wrong success
|
||||||
sudo -k || sudo --reset-timestamp
|
sudo -k || sudo --reset-timestamp
|
||||||
|
|
||||||
# checks if all scripts are sudo access
|
# checks if all scripts are sudo access
|
||||||
scripts=("${SOURCE_DIR}/scripts/rmappdir.sh" \
|
scripts=("${SOURCE_DIR}/src/scripts/rmappdir.sh" \
|
||||||
"${SOURCE_DIR}/scripts/createappdir.sh" \
|
"${SOURCE_DIR}/src/scripts/createappdir.sh" \
|
||||||
"${SOURCE_DIR}/scripts/reloadnginx.sh" \
|
"${SOURCE_DIR}/src/scripts/reloadnginx.sh" \
|
||||||
"${SOURCE_DIR}/scripts/backupbox.sh" \
|
"${SOURCE_DIR}/src/scripts/backupbox.sh" \
|
||||||
"${SOURCE_DIR}/scripts/backupapp.sh" \
|
"${SOURCE_DIR}/src/scripts/backupapp.sh" \
|
||||||
"${SOURCE_DIR}/scripts/restoreapp.sh" \
|
"${SOURCE_DIR}/src/scripts/restoreapp.sh" \
|
||||||
"${SOURCE_DIR}/scripts/reboot.sh" \
|
"${SOURCE_DIR}/src/scripts/reboot.sh" \
|
||||||
"${SOURCE_DIR}/scripts/backupswap.sh" \
|
"${SOURCE_DIR}/src/scripts/backupswap.sh" \
|
||||||
"${SOURCE_DIR}/scripts/collectlogs.sh" \
|
"${SOURCE_DIR}/src/scripts/collectlogs.sh" \
|
||||||
"${SOURCE_DIR}/scripts/reloadcollectd.sh")
|
"${SOURCE_DIR}/src/scripts/reloadcollectd.sh")
|
||||||
|
|
||||||
for script in "${scripts[@]}"; do
|
for script in "${scripts[@]}"; do
|
||||||
if [[ $(sudo -n "${script}" --check 2>/dev/null) != "OK" ]]; then
|
if [[ $(sudo -n "${script}" --check 2>/dev/null) != "OK" ]]; then
|
||||||
@@ -37,23 +39,23 @@ if ! docker inspect girish/test:0.2.0 >/dev/null 2>/dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! docker inspect cloudron/redis:0.3.0 >/dev/null 2>/dev/null; then
|
if ! docker inspect "${REDIS_IMAGE}" >/dev/null 2>/dev/null; then
|
||||||
echo "docker pull cloudron/redis:0.3.0 for tests to run"
|
echo "docker pull ${REDIS_IMAGE} for tests to run"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! docker inspect cloudron/mysql:0.3.0 >/dev/null 2>/dev/null; then
|
if ! docker inspect "${MYSQL_IMAGE}" >/dev/null 2>/dev/null; then
|
||||||
echo "docker pull cloudron/mysql:0.3.0 for tests to run"
|
echo "docker pull ${MYSQL_IMAGE} for tests to run"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! docker inspect cloudron/postgresql:0.3.0 >/dev/null 2>/dev/null; then
|
if ! docker inspect "${POSTGRESQL_IMAGE}" >/dev/null 2>/dev/null; then
|
||||||
echo "docker pull cloudron/postgresql:0.3.0 for tests to run"
|
echo "docker pull ${POSTGRESQL_IMAGE} for tests to run"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! docker inspect cloudron/mongodb:0.3.0 >/dev/null 2>/dev/null; then
|
if ! docker inspect "${MONGODB_IMAGE}" >/dev/null 2>/dev/null; then
|
||||||
echo "docker pull cloudron/mongodb:0.3.0 for tests to run"
|
echo "docker pull ${MONGODB_IMAGE} for tests to run"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user