我有一个Angular6应用程序,需要作为Docker容器(Nginx Base Image)部署到Kubernetes集群上。
问题
:如何使用一次构建的Docker映像进行调整,但能够在dev&prod中运行并指向不同的API URL?
我的
环境文件
:
环境.ts
export const environment = {
production: false,
API_URL: 'https://dev-server.domain.com'
};
环境产品
export const environment = {
production: true,
API_URL: 'https://prod-server.domain.com'
};
我的
nginx.conf格式
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html index.htm;
include /etc/nginx/mime.types;
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
location / {
try_files $uri $uri/ /index.html;
}
}
}
我的
停靠文件
:
FROM nginx:alpine
EXPOSE 80
COPY nginx.conf /etc/nginx/nginx.conf
WORKDIR /usr/share/nginx/html
COPY dist/my_project .
在这一点上,我在本地机器上构建我的项目并优化它以用于生产:
ng build --prod --build-optimizer
因此,此时我的文件结构如下所示:
root
|
|
|
|
|
|
|
|
|
|
|
|
|
现在,我准备创建docker图像:
docker build -t my_application_image .
然后,我将图像推送到Docker注册表,然后在Kubernetes中使用。
既然您知道我的设置,您能建议我如何修改它,以便不同的环境文件可以用于dev&prod吗?