docker-创建 MySQL 数据库容器时出现错误
docker-compose error when creating MySQL database container
我的 Spring 引导应用程序中有以下 docker-compose.yml
和 Dockerfile
但是当我 运行 docker-compose up -d
时,我收到以下错误:
"failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount967315702/Dockerfile: no such file or directory"
当我使用 Windows10 时,我想我需要一些与 WORKDIR 等相关的调整。我在 Docker 安装了 WSL)。但是即使我尝试了不同的组合,我也没有设法解决问题。
这是我的根项目文件夹 (springboot-backend
) 中的 docker-compose.yml
和 Dockerfile
:
docker-compose.yml:我不确定
version: "3.8"
services:
mysqldb:
image: mysql:5.7
restart: unless-stopped
env_file: ./.env
environment:
- MYSQL_ROOT_PASSWORD=$MYSQLDB_ROOT_PASSWORD
- MYSQL_DATABASE=$MYSQLDB_DATABASE
ports:
- $MYSQLDB_LOCAL_PORT:$MYSQLDB_DOCKER_PORT
volumes:
- db:/var/lib/mysql
app:
depends_on:
- mysqldb
build: ./springboot-backend
restart: on-failure
env_file: ./.env
ports:
- $SPRING_LOCAL_PORT:$SPRING_DOCKER_PORT
environment:
SPRING_APPLICATION_JSON: '{
"spring.datasource.url" : "jdbc:mysql://mysqldb:$MYSQLDB_DOCKER_PORT/$MYSQLDB_DATABASE?useSSL=false",
"spring.datasource.username" : "$MYSQLDB_USER",
"spring.datasource.password" : "$MYSQLDB_ROOT_PASSWORD",
"spring.jpa.properties.hibernate.dialect" : "org.hibernate.dialect.MySQL5InnoDBDialect",
"spring.jpa.hibernate.ddl-auto" : "update"
}'
volumes:
- .m2:/root/.m2
stdin_open: true
tty: true
volumes:
db:
Docker文件:
FROM maven:3.8.2-jdk-8
WORKDIR /springboot-backend
COPY . .
RUN mvn clean install
CMD mvn spring-boot:run
.env 文件:
MYSQLDB_USER=root
MYSQLDB_ROOT_PASSWORD=******
MYSQLDB_DATABASE=employee_management_system
MYSQLDB_LOCAL_PORT=3307
MYSQLDB_DOCKER_PORT=3306
SPRING_LOCAL_PORT=6868
SPRING_DOCKER_PORT=8080
有什么想法吗?
文件夹结构如下:
app:
depends_on:
- mysqldb
build: ./springboot-backend
Docker compose yaml 尝试构建 springboot-backend 但在 compose yaml 的相同路径中没有这样的目录。只需将 docker-compose yaml 移动到 springboot-backend 项目文件夹之外即可。
我的 Spring 引导应用程序中有以下 docker-compose.yml
和 Dockerfile
但是当我 运行 docker-compose up -d
时,我收到以下错误:
"failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount967315702/Dockerfile: no such file or directory"
当我使用 Windows10 时,我想我需要一些与 WORKDIR 等相关的调整。我在 Docker 安装了 WSL)。但是即使我尝试了不同的组合,我也没有设法解决问题。
这是我的根项目文件夹 (springboot-backend
) 中的 docker-compose.yml
和 Dockerfile
:
docker-compose.yml:我不确定
version: "3.8"
services:
mysqldb:
image: mysql:5.7
restart: unless-stopped
env_file: ./.env
environment:
- MYSQL_ROOT_PASSWORD=$MYSQLDB_ROOT_PASSWORD
- MYSQL_DATABASE=$MYSQLDB_DATABASE
ports:
- $MYSQLDB_LOCAL_PORT:$MYSQLDB_DOCKER_PORT
volumes:
- db:/var/lib/mysql
app:
depends_on:
- mysqldb
build: ./springboot-backend
restart: on-failure
env_file: ./.env
ports:
- $SPRING_LOCAL_PORT:$SPRING_DOCKER_PORT
environment:
SPRING_APPLICATION_JSON: '{
"spring.datasource.url" : "jdbc:mysql://mysqldb:$MYSQLDB_DOCKER_PORT/$MYSQLDB_DATABASE?useSSL=false",
"spring.datasource.username" : "$MYSQLDB_USER",
"spring.datasource.password" : "$MYSQLDB_ROOT_PASSWORD",
"spring.jpa.properties.hibernate.dialect" : "org.hibernate.dialect.MySQL5InnoDBDialect",
"spring.jpa.hibernate.ddl-auto" : "update"
}'
volumes:
- .m2:/root/.m2
stdin_open: true
tty: true
volumes:
db:
Docker文件:
FROM maven:3.8.2-jdk-8
WORKDIR /springboot-backend
COPY . .
RUN mvn clean install
CMD mvn spring-boot:run
.env 文件:
MYSQLDB_USER=root
MYSQLDB_ROOT_PASSWORD=******
MYSQLDB_DATABASE=employee_management_system
MYSQLDB_LOCAL_PORT=3307
MYSQLDB_DOCKER_PORT=3306
SPRING_LOCAL_PORT=6868
SPRING_DOCKER_PORT=8080
有什么想法吗?
文件夹结构如下:
app:
depends_on:
- mysqldb
build: ./springboot-backend
Docker compose yaml 尝试构建 springboot-backend 但在 compose yaml 的相同路径中没有这样的目录。只需将 docker-compose yaml 移动到 springboot-backend 项目文件夹之外即可。