Dockerfile 安装node环境和json-server

准备工作

准备db.json,这里我直接用的json-server官网的数据

vim db.json
{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}

准备node环境包,因为dockerfile的ADD方法无法解压网上二次压缩文件,所以我用ADD复制了本地的一份,如果有解决办法请告诉我

wget https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz

准备Dockerfile

#选择元镜像debian
FROM debian
#设置维护人
MAINTAINER lishuo
#设定工作目标
WORKDIR /opt
#把本地压缩包文件复制过来 ADD自动解压
ADD  node-v12.16.2-linux-x64.tar.xz /opt
#配置环境变量
ENV PATH=$PATH:/opt/node-v12.16.2-linux-x64/bin
#用npm安装json-server
RUN npm install -g json-server --registry=https://registry.npm.taobao.org
#在根目录创建data目录
RUN mkdir /data
#把db.json复制到data目录下
ADD db.json /data/
#把工作目录设置成根
WORKDIR /
#指定docker run后执行的命令
CMD json-server /data/db.json --port 3000 --host 0.0.0.0

#生成镜像
docker build -t lsnode .
#启动镜像
docker run -d --name chome1 -p 3001:3000 lsnode

在这里插入图片描述

运行成功

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
我想将frontend 也是用volumes,将其映射到/app/frontend目录,在/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;"]
07-14

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值