/etc/docker/daemon.json 被改成daemon.yaml
时间: 2023-08-22 22:04:06 浏览: 41
如果您的 `/etc/docker/daemon.json` 文件被意外地修改为了 `daemon.yaml`,可能是由于以下原因:
1. 操作系统或软件升级过程中出现了错误,导致配置文件名称被意外更改。
2. 您或其他人为了某些原因修改了配置文件名称,但是忘记了这个操作。
如果您需要使用 JSON 格式的配置文件,可以将 `daemon.yaml` 重命名为 `daemon.json`,并修改其中的配置选项。请注意在修改文件名称之前备份原有的配置文件,以防止数据丢失。
如果您打算继续使用 YAML 格式的配置文件,可以在 `daemon.yaml` 中配置 Docker daemon 的选项。YAML 格式的配置文件与 JSON 格式的配置文件有些许不同,请查看 Docker 官方文档,以了解如何编写 YAML 格式的 Docker 配置文件。
相关问题
我的代码跟docker-compose.yml文件放在/app目录下 /app/frontend存放前端代码 /app/backend存放后端代码 我想直接在/app/frontend直接install跟build再拷贝到容器内,如何实现 docker-compose.yml文件: version: '3' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - 8010:80 restart: always backend: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: python manage.py runserver 0.0.0.0:8000 ports: - 8011:8000 restart: always celery-worker: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server worker -l info --pool=solo --concurrency=1 depends_on: - redis - backend restart: always celery-beat: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler depends_on: - redis - backend restart: always redis: image: redis:latest ports: - 6379:6379 restart: always mysql: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=sacfxSql258147@ ports: - 8016:3306 volumes: - ./mysql:/var/lib/mysql restart: always frontend:dockerfile文件: FROM node:16.18.1 WORKDIR /app/frontend COPY package*.json ./ RUN npm install COPY . . RUN npm run build:prod FROM nginx:latest COPY --from=0 /app/frontend/dist/ /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
要直接在 `/app/frontend` 目录内进行安装和构建,并将构建后的文件拷贝到容器内,你可以使用以下方法来实现。
首先,在 `docker-compose.yml` 文件中,将 `frontend` 服务的 `volumes` 部分修改如下:
```yaml
version: '3'
services:
frontend:
build:
context: .
dockerfile: frontend/Dockerfile
ports:
- 8010:80
volumes:
- ./frontend:/app/frontend
restart: always
```
然后,在 `frontend` 的 `Dockerfile` 文件中,进行相应的修改:
```dockerfile
FROM node:16.18.1
WORKDIR /app/frontend
COPY package*.json ./
RUN npm install
RUN npm run build:prod
FROM nginx:latest
COPY --from=0 /app/frontend/dist/ /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```
现在,当你使用 `docker-compose up` 启动容器时,它将会将本地的 `/app/frontend` 目录映射到容器内的 `/app/frontend` 目录,并在容器内部进行安装和构建操作。
请注意,这里假设 `docker-compose.yml` 文件和 `frontend` 目录以及 `backend` 目录都在同一级目录下的 `/app` 目录中。如果不是,请相应调整 `docker-compose.yml` 和 `Dockerfile` 中的路径。
/app目录下有 frontend文件夹,里面是前端代码以及docker-compose.yml文件 帮我在frontend写一个脚本,执行npm install 跟npm run build:prod 然后在frontend文件夹中的Dockerfile文件中执行该脚本,并且使用nginx转发npm run build:prod打包生成的dist里的内容,80端口 请帮我编写docker-compose.yml、Dockerfile以及脚本
好的,我帮你编写docker-compose.yml、Dockerfile以及脚本。
首先是docker-compose.yml文件内容如下:
```yaml
version: '3'
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- 80:80
depends_on:
- nginx
nginx:
image: nginx:latest
ports:
- 80:80
volumes:
- ./frontend/dist:/usr/share/nginx/html
```
接下来是Dockerfile文件内容如下:
```Dockerfile
# 使用node镜像作为基础镜像
FROM node:14.17.0-alpine as build
# 设置工作目录
WORKDIR /app
# 将package.json和package-lock.json复制到工作目录
COPY package*.json ./
# 安装依赖
RUN npm install
# 将所有文件复制到工作目录
COPY . .
# 执行npm run build:prod命令
RUN npm run build:prod
# 使用nginx镜像作为基础镜像
FROM nginx:latest
# 将dist目录中的文件复制到nginx的默认静态文件目录
COPY --from=build /app/dist /usr/share/nginx/html
# 暴露80端口
EXPOSE 80
# 容器启动时运行nginx命令
CMD ["nginx", "-g", "daemon off;"]
```
最后是脚本(script.sh)内容如下:
```bash
#!/bin/bash
# 进入frontend目录
cd frontend
# 安装依赖
npm install
# 执行npm run build:prod
npm run build:prod
```
请确保在frontend文件夹下已经有package.json和package-lock.json文件,并且已经安装了npm和Docker。然后在frontend文件夹中执行以下命令:
```bash
chmod +x script.sh
./script.sh
```
这样脚本会执行npm install 和 npm run build:prod命令。
最后,在/app目录下执行以下命令启动服务:
```bash
docker-compose up -d
```
这样就完成了在frontend文件夹中执行npm install 和 npm run build:prod,并且使用nginx转发打包生成的dist目录内容的配置。