开始准备
拉取镜像:arm64v8/node:18.15.0-alpine
如果你想要进入终端进行交互式操作,在Alpine Linux上,通常是ash作为默认shell,所以你的docker run命令应该是这样的:
docker run -i -t -d -p 8000:8000 --name strapi-app -v /mnt/sda1/Strapi:/app arm64v8/node:18.15.0-alpine /bin/sh
在基于Alpine Linux的容器中,通常不会预先安装curl和bash和wget
apk update
apk add curl bash wget
wget -O - https://rpm.nodesource.com/setup_18.x | sh -
要在Alpine Linux容器中安装Node.js,应该使用apk包管理器,正确的安装Node.js命令是:
apk update
apk add nodejs
node -v
设置npm源:
npm config set registry https://registry.npm.taobao.org
下面开始安装必要的环境模块
apk update apk add vips-dev npm install --ignore-scripts=false --verbose sharp
#创建新strapi项目 npx create-strapi-app@latest
strapi
封装镜像前有个问题:需要修改网页对后台admin的指向链接,需要编辑config/server.js
module.exports = ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
admin: {
url: env('PUBLIC_ADMIN_URL', '/admin'),
},
app: {
keys: env.array('APP_KEYS'),
},
webhooks: {
populateRelations: env.bool('WEBHOOKS_POPULATE_RELATIONS', false),
},
});
还需要修改后台界面的语言设置,取消需要的语言注释
然后上传小程序接口文件到scr目录下,然后重新构建项目:npm run build
现在开始打包镜像,创建Dockerfile文件
FROM strapi:v2
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories
RUN apk update && apk add vips-dev
ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package*.json ./
RUN npm install
COPY ./ .
RUN npm run build
EXPOSE 1337
CMD ["npm", "run", "develop"]
开始打包:
docker build -t strapi .
最后就可以通过docker-compose来创建容器了