我想将Redmine Docker镜像部署到Azure App Services,并将其指向部署到MySQL服务器的Azure数据库的MySql实例。这将为我提供一个完全托管的体系结构。我已经创建了MySql的实例,可以使用MySql Workbench从本地PC连接到它。不幸的是,我正在部署到App Services的Redmine Docker镜像无法启动。日志显示:实例*******上的Docker经历了容器启动失败。应用程序日志表明启动命令存在问题。在查看了容器崩溃日志之后,我注意到我的启动命令附加到了docker run命令之后:
docker run -d -p 6390:3000 --name redminetest_0_3d4d8283 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE = false -e WEBSITE_SITE_NAME = redminetest -e WEBSITE_AUTH_ENABLED = False -e PORT = 3000 -e WEBSITE_ROLE_INSTANCE_ID = -e WEBSITESITEH_ID = 0。 = c0f955200062b837a8b06271f039c1d9a6aa1309ada101b0e47bf9c23c0ba3a3 redmine:latest --name MyRedmine -e REDMINE_DB_MYSQL = 51.140.184.11 -e REDMINE_DB_PORT = al3mine -e REDMINE_DB_NAME!Special_spec redmine
我可以立即看到--name参数和图像名称/标签被我的命令复制了。这是我可以纠正的问题,但是如何在图像名称/标签(redmine:latest)之前附加环境变量?
更新:
请查看下面的屏幕截图。这证明了问题。我的环境变量附加在镜像名称之后。
最佳答案
docker run
的正确格式如下:
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
您应该根据其最终传递图像名称,而所有其他选项(如
-p, -e, -d
等)应在图像名称之前传递。下面是正确的命令:
docker run -d -p 6390:3000 --name redminetest_0_3d4d8283 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=redminetest -e WEBSITE_AUTH_ENABLED=False -e PORT=3000 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=redminetest.azurewebsites.net -e WEBSITE_INSTANCE_ID=c0f955200062b837a8b06271f039c1d9a6aa1309ada101b0e47bf9c23c0ba3a3 -e REDMINE_DB_MYSQL=51.140.184.11 -e REDMINE_DB_PORT=3306 -e REDMINE_DB_USERNAME=special@mysqlredmine -e REDMINE_DB_PASSWORD=Sp3c1al! redmine:latest
关于image - 将Redmine docker容器部署到App Services,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62082467/