小编ch.*_*h.E的帖子

与configmap通信时出错

嗨,我正在使用Google kubernetes引擎来部署我的应用程序。我试图添加一个configMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap
  namespace: default
data:
  database_user: root
  database_password: root
  database_db: db
  database_port: 5432
  database_host: mypostgres
Run Code Online (Sandbox Code Playgroud)

然后在我的应用程序部署文件中,映射我的环境变量,如下所示

 spec:
      containers:
      - env:
        - name: DATABASE_HOST
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_host
        - name: DATABASE_NAME
          valueFrom:
            configMapKeyRef:
              name: configmap
              key:  database_db
        - name: DATABASE_PASSWORD
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_password
        - name: DATABASE_USER
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_user

        - name: DATABASE_PORT
          valueFrom:
            configMapKeyRef:
              name: configmap
              key: database_port
Run Code Online (Sandbox Code Playgroud)

我的服务没有运行,我得到了

CreateContainerConfigError当我尝试显示窗格的结果时

当我“描述我的豆荚”时,我得到了

错误:找不到密钥database_host

我的问题是,为什么我的部署文件未与我定义的configmap冲突

我通过此命令创建了configmap

kubectl创建configmap configmap …

kubernetes configmap

6
推荐指数
1
解决办法
1418
查看次数

如何链接前端和后端Docker容器

我目前正在使用Postgresql作为数据库开发Spring Boot和一个reactJs应用程序。我的Spring和我的reactJs应用程序在两个单独的项目中。我试图使用docker-compose将应用程序进行docker化。因此,在服务器端,我springboot在docker-compose文件中定义了我的postgresql和服务。哪一个

version: '3'
services:
  app:
    image: app
    depends_on:
    - mypostgres
    ports:
     - "9000:8086"
    environment:
      - DATABASE_HOST=mypostgres
      - DATABASE_USER=root
      - DATABASE_PASSWORD=root
      - DATABASE_NAME=test
      - DATABASE_PORT=5432



  mypostgres:
    image: postgres:9.6-alpine
    container_name: mypostgres

    ports:
     - "5433:5432"

    environment:
     - POSTGRES_PASSWORD=root
     - POSTGRES_USER=root
     - POSTGRES_DB=irooldb
    volumes:
    - ./postgres-data:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

对于Client side,我没有使用docker-compose,而是仅添加了一个Dockerfile并在单独的容器中运行客户端应用程序。

我的问题是:

如何将我的客户端容器链接到服务器端容器?

是否应在服务器端项目中的docker-compose文件中定义客户端服务?或者他们分开运行还可以吗?

docker docker-compose

5
推荐指数
1
解决办法
4518
查看次数

容器化 ReactJs 应用程序(来自 nginx 映像)不提供所有路由

我正在尝试在 GKE 上部署 ReactJS 服务。我使用 Nginx 构建我的 React 镜像(我使用了 create-react-app 和 React router)。

这是我的 dockerfile

FROM node:8.9.3-alpine as build-deps2
RUN mkdir /irooltest WORKDIR /irooltest COPY . /irooltest
RUN npm install RUN npm run build

FROM nginx:1.12-alpine 
COPY --from=build-deps2 /irooltest/build /usr/share/nginx/html
EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)

这是我的 docker compose 文件:

services:
  irooltest:
     image: chaimaennar/irooltest
     ports:
      - 8080:80
     networks:
            default:

networks:
   default:
      external:
        name: mynetwork
Run Code Online (Sandbox Code Playgroud)

我尝试将我的应用程序导出到 80 以外的端口,但我无法(我知道这是由于 nginx,我默认配置为在端口 80 上提供服务)。

另一个问题是,运行我的应用程序时,它只显示根页面,任何其他(我用反应路由器定义的路由)显示:

404 未找到 nginx/1.12.2

当我看到源代码(在浏览器的检查部分)时,我看到:

-Top
  -localhost:8080
    -static
    -index.css …
Run Code Online (Sandbox Code Playgroud)

nginx docker reactjs dockerfile docker-compose

3
推荐指数
1
解决办法
3658
查看次数