在这件事上,我对库伯内特斯(和道克)并不陌生。我需要了解使用Devspace迁移我现有的Vue.js应用程序的过程。我已经在运行这个应用程序了,大概,但是我没有连接到
ws://localhost:4000/graphql
或者能够建立起一种蒙戈联系。
MongoServerSelectionError: ECONNREFUSED 127.0.0.1:27017
相关预先存在的package.json入口点
"serve": "vue-cli-service serve -mode development",
"build": "vue-cli-service build",
"apollo": "vue-cli-service apollo:dev --generate-schema",
"apollo:schema:generate": "vue-cli-service apollo:schema:generate",
"apollo:schema:publish": "vue-cli-service apollo:schema:publish",
"apollo:start": "vue-cli-service apollo:start",app结构
/apollo-server
context.js ## Mongo connection made here.
/src
vue-apollo.js ## Apollo setup (Graphql is setup here.)
Dockerfile
devspace.yaml
package.json现在,
Dockerfile
FROM node:13.12.0-alpine
# Set working directory
WORKDIR /app
# Add package.json to WORKDIR and install dependencies
COPY package*.json ./
RUN npm install
# Add source code files to WORKDIR
COPY . .
# Application port (optional)
# express server runs on port 3000
EXPOSE 3000
# Debugging port (optional)
# For remote debugging, add this port to devspace.yaml: dev.ports[*].forward[*].port: 9229
EXPOSE 9229
CMD ["npm", "start"]devspace.yaml
version: v1beta9
images:
app:
image: sandbox/practiceapp
preferSyncOverRebuild: true
injectRestartHelper: false
cmd: ["yarn", "serve"]
appendDockerfileInstructions:
- USER root
backend:
image: sandbox/backend
preferSyncOverRebuild: true
injectRestartHelper: false
entrypoint: ["yarn", "apollo"]
appendDockerfileInstructions:
- USER root
deployments:
- name: frontend
helm:
componentChart: true
values:
containers:
- image: sandbox/practiceapp
service:
ports:
- port: 8080
- name: backend
helm:
componentChart: true
values:
containers:
- image: sandbox/backend
service:
ports:
- port: 4000
- port: 3000
- port: 27017
# - name: mongo
# helm:
# componentChart: true
# values:
# containers:
# - image: sandbox/mongo
# service:
# ports:
# - port: 27017
dev:
ports:
- imageName: app
forward:
- port: 8080
# - imageName: apollo
# forward:
# port: 3000
# - imageName: graphql
# forward:
# port: 4000
# - imageName: mongo
# forward:
# port: 27017
open:
- url: http://localhost:8080
- url: http://localhost:4000/graphql
sync:
- imageName: app
excludePaths:
- .git/
uploadExcludePaths:
- Dockerfile
- node_modules/*
- '!node_modules/.temp/'
- devspace.yaml
onUpload:
restartContainer: true
profiles:
- name: production
patches:
- op: remove
path: images.app.injectRestartHelper
- op: remove
path: images.app.appendDockerfileInstructions
- name: interactive
patches:
- op: add
path: dev.interactive
value:
defaultEnabled: true
- op: add
path: images.app.entrypoint
value:
- sleep
- "9999999999"我一直在寻找关于如何包含现有应用程序的服务的信息,但我很难理解。我需要一些指导,如何设置这一点,或在哪里查找。
谢谢你的帮助和时间。
发布于 2020-11-23 22:20:21
从你提供的信息来看,我认为这可能是一个网络问题。请检查您的应用程序是否在所有接口上侦听,而不是只在localhost上侦听,因为这会导致连接被拒绝,如本故障排除指南:https://devspace.sh/cli/docs/guides/networking-domains#troubleshooting所述。
发布于 2020-11-27 09:02:41
解决这个问题的方法是重构我的应用程序的结构,包括deployments中的服务端口和dev.ports中的转发端口。
deployments:
- name: app
helm:
componentChart: true
values:
containers:
- image: namespace/frontend
service:
name: app-service
ports:
- port: 8080
- port: 4000
dev:
ports:
- imageName: app
forward:
- port: 8080
- port: 4000我的应用程序的最终结构:
./backend
.dockerignore
Dockerfile
package.json
./frontend
.dockerignore
Dockerfile
package.json
devspace.yaml就连接mongodb而言,我最初是从minikube开始,然后迁移到docker桌面,但由于在docker桌面上使用副本集(本地主机不能被分配为外部ip的两倍),所以无法设置具有外部负载平衡访问权限的无头端口。我使用bitnami的mongodb头盔图表和devspace来完成这个任务。
https://stackoverflow.com/questions/64953172
复制相似问题