当前位置: 首页 > 面试题库 >

在特定于Docker容器环境中配置Angular 2 Webpack App

薛修能
2023-03-14
问题内容

我们想在不同的环境(阶段/测试,生产等)中使用 Docker映像* 部署 Angular 2 应用程序 *

在本地开发时,我们通过http:// localhost:8080连接到后端REST
API,但是当我们在不同的环境中部署时,我们想使用 相同的Docker映像 并连接到 不同的REST API端点

什么将是首选的方式 注入配置在运行时多克尔容器

有没有办法通过 环境变量 来做到这一点?

我们可以通过包含以下内容的 纯文本文件来 执行此 操作 吗?

{
    "BASE_URL": "https://api.test.example.com"
}

问题答案:

在本文和Twitter上进行了一些讨论之后,似乎没有简单的方法可以通过Webpack实现我想要的功能。这些文件仅在运行时用作静态文件,并且无法在构建时排除文件并在运行时将其包括在内。

因此,我决定采用我想到的解决方案/变通办法:在启动Docker容器时更改静态文件。

我通过做来创建我的docker镜像

npm run build:prod
docker build -t angularapp .

我正在使用官方的Nginx Docker映像作为我的基本映像,并且Dockerfile看起来像

FROM nginx:1.11.1

COPY dist /usr/share/nginx/html
COPY run.sh /run.sh

CMD ["bash", "/run.sh"]

run.sh用于通过修改配置文件sed和nginx的事后开始:

#!/bin/sh

/bin/sed -i "s|http://localhost:8080|${BASE_URL}|" /usr/share/nginx/html/api.config.chunk.js

nginx -g 'daemon off;'

这使我可以BASE_URLdocker-compose.yml文件中配置“ via”环境变量(简化):

version: '2'

services:
  api:
    image: restapi
  frontend:
    image: angularapp
    environment:
      BASE_URL: https://api.test.example.com

通过此解决方案/解决方法,我可以通过配置启动docker容器时通过环境变量使用的REST
API端点,来将我的jenkins作业创建的docker映像部署到我所有环境(开发,登台,生产)中部署的特定版本。



 类似资料:
  • 使用特定于环境的值配置Grails服务的最佳方法是什么?我认为有两种选择: 从服务类或 我在stackoverflow和其他地方看到了一些展示如何执行#1(在服务中访问grailsApplication)的帖子。其中一个帖子是:将grails应用程序配置注入服务。 两本书有注入属性的示例(方法#2)。本书《Grails 2的权威指南》第10章题为“实际服务”的一节介绍了如何做到这一点,但没有特定于

  • New in version 1.1. 你完全有可能遇到一些更新包需要通过proxy才能正常获取,或者甚至一部分包需要通过proxy升级而另外一部分包则不需要通过proxy.或者可能你的某个脚本需要调用某个环境变量才能正常运行. Ansible 使用 ‘environment’ 关键字对于环境部署的配置非常简单容易,下面是一个使用案例: - hosts: all remote_user: ro

  • 我主要用python编程,并且有一些虚拟环境方面的经验。我是新的软件,并开始寻找docker来运行我的代码。我想了解它的功能和工作原理。 据我所知,docker容器就像虚拟环境,在执行时运行一组指令,可以将其中包含的所有内容视为一个实体(因此它或其他内容不会相互制约?)。当我读到更多关于容器的内容时,它们听起来非常完美,可以消除对虚拟环境的任何需求,但仍然不确定。如果能澄清一下,我将不胜感激,因为

  • 问题内容: 我正在运行Ubuntu Docker容器。我有挪威语键盘,需要使用挪威语字符(øæå)。 我的终端字符编码设置为UTF-8,我使用SSH连接到我的容器。但是,我无法键入挪威字符,也无法复制和粘贴挪威字符,也无法使用CTL + SHIFT + U + 00f8。 我试过了: 但是什么都没有改变。如何在Docker容器中设置语言环境和键盘? 问题答案: 将Dockerfile改编自 这摘自

  • 1.下载并安装Jdk 传送门,下载完成以后,按照提示一步一步执行即可。 2.配置Jdk 传送门。 3.下载AndroidStudio 传送门,我一般选择推荐安装的那个。不要想着去谷歌官网下载,不要问为什么。 4.安装配置AndroidStudio。传送门,后续会重新传送一个门。 5.下载并安装nodejs 传送门。 6.安装weex命令行工具。打开命令行,执行命令:npm install -g w

  • 我已经创建了两个docker容器,并尝试在ubuntu、debian和一些包上安装一些应用程序,如-mc、ping、traceroute。。但每当我从集装箱里出来,我就会把里面的东西都弄丢。。是否有docker命令保存我的配置?