Arm芯片基于Alpine Linux创建Node.js环境

开始准备

拉取镜像: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来创建容器了

 

0
0