我正在尝试在docker上托管一个使用MySQL db的应用程序.我正在使用docker compose.我的yml文件如下所示:
version: '2'
volumes:
data_sql:
services:
medical-mysql:
image: mysql
hostname: medical-mysql
volumes:
- data_sql:/dbcreation.sql
environment:
MYSQL_DATABASE: Medical
MYSQL_ROOT_PASSWORD: root
STARTUP_SQL: data_sql
ports:
- "3306:3306"
medical-main:
build: .
ports:
- "8080:8080"
depends_on:
- medical-mysql
Run Code Online (Sandbox Code Playgroud)
我有一个dbcreation.sql创建数据库架构并保存在yml文件夹中.当我运行yml文件时,好像文件没有运行.
我错过了什么?
我正在尝试在Docker容器上运行基于Vert.x Java的应用程序.我的应用程序运行很少的Verticle,它从内部启动.我把jar文件放在一个文件夹上并创建了一个包含以下内容的Dockerfile:
FROM vertx/vertx3
ENV VERTICLE_FILE Medical-1.0-SNAPSHOT.jar
ENV VERTICLE_HOME /performit/web/vertx/verticles/
COPY $VERTICLE_FILE $VERTICLE_HOME/
WORKDIR $VERTICLE_HOME
ENTRYPOINT ["sh", "-c"]
EXPOSE 8080
CMD ["java -jar $VERTICLE_FILE"]
USER daemon
Run Code Online (Sandbox Code Playgroud)
我用命令创建一个图像
$ sudo docker build -t medical-main .
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下行创建一个容器:
sudo docker run --name medical-main -p 8080:8080 -d medical-main
Run Code Online (Sandbox Code Playgroud)
此操作失败,日志显示以下内容:
java.lang.IllegalStateException: Failed to create cache dir
at io.vertx.core.impl.FileResolver.setupCacheDir(FileResolver.java:257)
at io.vertx.core.impl.FileResolver.<init>(FileResolver.java:79)
at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:138)
at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:114)
at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:110)
at io.vertx.core.impl.VertxFactoryImpl.vertx(VertxFactoryImpl.java:34)
at io.vertx.core.Vertx.vertx(Vertx.java:79)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
以斯哈