我有一个码头映像构建和运行与npm令牌如何将此转换为在Kubernetes部署。下面是我的图片和命令,以建立和运行。
#First Build
FROM node:16.17-bullseye
ARG NPM_TOKEN
WORKDIR /usr/src/app
#COPY package*.json .npmrc ./
COPY package*.json /usr/src/app/
COPY .npmrc /usr/src/app/
RUN npm update
RUN npm install
COPY . .
CMD ["npm","run","main"]Buld命令:
docker build . -t image --build-arg NPM_TOKEN=<token>运行命令:
docker run -p 3001:3001 -it -e NPM_TOKEN="Token" imageid我正在使用构建映像的蔚蓝管道,将其推送到蔚蓝容器注册中心,然后将其拖放到aks (azure kubernetes服务)中。下面是我的部署文件:
apiVersion : apps/v1
kind: Deployment
metadata:
name: microa
namespace: ingress-basic
spec:
replicas: 1
selector:
matchLabels:
app: microa
template:
metadata:
labels:
app: microa
spec:
containers:
- name: microa
image: acrURL/microa
args: ["NPM_TOKEN=<token>"]
resources:
requests:
memory: "256Mi"
cpu: "1000m"
limits:
memory: "512Mi"
cpu: "1500m"
ports:
- containerPort: 3001发布于 2022-09-23 18:57:11
我认为您正在朝着正确的方向前进,需要纠正的一件事是,"NPM_TOKEN“是作为一个环境变量在您的停靠脚本中编写的,但是在YAML文件中,您将它定义为一个arg。所以正确的deployment.yaml文件应该是:
apiVersion : apps/v1
kind: Deployment
metadata:
name: microa
namespace: ingress-basic
spec:
replicas: 1
selector:
matchLabels:
app: microa
template:
metadata:
labels:
app: microa
spec:
containers:
- name: microa
image: acrURL/microa
env:
- name: NPM_TOKEN
value: "<token>"
resources:
requests:
memory: "256Mi"
cpu: "1000m"
limits:
memory: "512Mi"
cpu: "1500m"
ports:
- containerPort: 3001此外,为了访问应用程序,您必须将容器端口转发到本地主机,下面的命令相当于您的docker命令中的"-p 3001:3001“:
kubectl port-forward -n ingress-basic pods/microa 3001:3001一旦端口转发设置完毕,您就可以在http://localhost:3001上访问您的应用程序.
https://stackoverflow.com/questions/73830020
复制相似问题