Heroku + DockHero
Heroku + DockHero
我在将应用程序部署到 DockHero 时遇到了一些问题。如您所见,我正在尝试 运行 这个命令,正如 heroku 在其文档中所说的那样:
ubuntu@ip-***-**-**-**:~/syncfusion$ heroku dh:compose up -d -a APP_NAME
但这种情况发生了:
Unknow flag: --file
See 'docker --help'.
这是我的 dockhero-compose.yml 文件:
version: '3.4'
services:
word-processor-server:
image: syncfusion/word-processor-server:latest
environment:
SYNCFUSION_LICENSE_KEY: MY_LICENSE
ports:
- "6002:80"
我错过了什么?
你在本地安装了Docker Compose吗?
它looks like heroku dh:compose up -d -a foo
只是运行s
docker compose --file dockhero-compose.yml -p dockhero up -d -a foo
但是如果 Docker Compose 未正确安装,您应该会收到与您看到的错误类似的错误。
在某些操作系统上,Docker Compose 似乎没有正确添加为 Docker 子命令。即,docker-compose
有效,但 docker compose
无效。
从 heroku dh:compose
运行s docker compose
开始,它将在此类系统上失败。
This Gist 展示了一种将 Docker Compose 注册为 Docker 子命令的方法:
创建一个~/.docker/cli-plugins
目录:
mkdir -p ~/.docker/cli-plugins
创建一个包含如下所示脚本的文件~/.docker/cli-plugins/docker-compose
使该文件可执行:
chmod +x ~/.docker/cli-plugins/docker-compose
应该将 Docker Compose 注册为 Docker 插件,这样您就可以 运行 docker compose
,这又应该使 heroku dh:compose
工作。
来自 Gist 的脚本:
#!/usr/bin/env bash
docker_cli_plugin_metadata() {
if [ -z "$DOCKER_COMPOSE_VERSION" ]; then
export DOCKER_COMPOSE_VERSION="$(docker-compose --version | cut -d " " -f 3 | cut -d "," -f 1)"
fi
local vendor="Docker"
local url="https://www.docker.com"
local description="Define and run multi-container applications"
cat <<-EOF
{"SchemaVersion":"0.1.0","Vendor":"${vendor}","Version":"${DOCKER_COMPOSE_VERSION}","ShortDescription":"${description}","URL":"${url}"}
EOF
}
case "" in
docker-cli-plugin-metadata)
docker_cli_plugin_metadata
;;
*)
exec "docker-$@"
;;
esac
我在将应用程序部署到 DockHero 时遇到了一些问题。如您所见,我正在尝试 运行 这个命令,正如 heroku 在其文档中所说的那样:
ubuntu@ip-***-**-**-**:~/syncfusion$ heroku dh:compose up -d -a APP_NAME
但这种情况发生了:
Unknow flag: --file
See 'docker --help'.
这是我的 dockhero-compose.yml 文件:
version: '3.4'
services:
word-processor-server:
image: syncfusion/word-processor-server:latest
environment:
SYNCFUSION_LICENSE_KEY: MY_LICENSE
ports:
- "6002:80"
我错过了什么?
你在本地安装了Docker Compose吗?
它looks like heroku dh:compose up -d -a foo
只是运行s
docker compose --file dockhero-compose.yml -p dockhero up -d -a foo
但是如果 Docker Compose 未正确安装,您应该会收到与您看到的错误类似的错误。
在某些操作系统上,Docker Compose 似乎没有正确添加为 Docker 子命令。即,docker-compose
有效,但 docker compose
无效。
从 heroku dh:compose
运行s docker compose
开始,它将在此类系统上失败。
This Gist 展示了一种将 Docker Compose 注册为 Docker 子命令的方法:
创建一个
~/.docker/cli-plugins
目录:mkdir -p ~/.docker/cli-plugins
创建一个包含如下所示脚本的文件
~/.docker/cli-plugins/docker-compose
使该文件可执行:
chmod +x ~/.docker/cli-plugins/docker-compose
应该将 Docker Compose 注册为 Docker 插件,这样您就可以 运行 docker compose
,这又应该使 heroku dh:compose
工作。
来自 Gist 的脚本:
#!/usr/bin/env bash
docker_cli_plugin_metadata() {
if [ -z "$DOCKER_COMPOSE_VERSION" ]; then
export DOCKER_COMPOSE_VERSION="$(docker-compose --version | cut -d " " -f 3 | cut -d "," -f 1)"
fi
local vendor="Docker"
local url="https://www.docker.com"
local description="Define and run multi-container applications"
cat <<-EOF
{"SchemaVersion":"0.1.0","Vendor":"${vendor}","Version":"${DOCKER_COMPOSE_VERSION}","ShortDescription":"${description}","URL":"${url}"}
EOF
}
case "" in
docker-cli-plugin-metadata)
docker_cli_plugin_metadata
;;
*)
exec "docker-$@"
;;
esac