作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在如下环境中运行我的应用程序:
app_runner
镜像创建数据库并运行应用程序。test_runner
镜像是 FROM app_runner
,连接到第一个容器中的数据库,并连接到应用程序。app_runner
。test_runner
。当我运行此命令时,机器 2 上的容器成功连接到应用程序,但无法连接到数据库。
runner.df
WORKDIR /opt/user/application
COPY *.sql ./
COPY app.tgz ./
EXPOSE 4210
EXPOSE 3306
RUN tar xzf app.tgz
mysql -hlocalhost -uroot --port=3306 < create_schema.sql
mysql -hlocalhost -uroot --port=3306 < create_data.sql
cd app/
./bin/app_name
test_runner.df
FROM app_runner:latest
WORKDIR /opt/user/app
COPY automated_tests/ .
CMD pybot ./Tests
机器1:
docker build --tag app_runner:latest -f runner.df .
docker run -p 4210:4210 -p 3306:3306 -itd app_runner:latest
机器2:
docker build --tag test_runner:latest -f test_runner.df .
docker run -it test_runer:latest
给出错误:
OperationalError: (2003, "Can't connect to MySQL server on '10.113.10.28' (111)")
其中 10.113.10.28 是机器 1 的 IP 地址。
最佳答案
您的第一个镜像没有启动 MySQL 数据库;它唯一启动的是主应用程序。我猜您已经安装了 MySQL,但是当您启动容器时它没有启动。
您可能应该将应用程序和数据库拆分到单独的容器中。使用数据库的标准 mysql
镜像。它有一个在首次启动时运行 SQL 文件以预填充数据库的路径。需要给应用程序镜像一个指向数据库位置的指针;如果您已经有了多主机设置,那么传递带有主机 IP 地址的环境变量可能是最简单的设置。
关于mysql - 连接到 docker 内的数据库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51816104/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!