Problem:
I have two applications say applicationA, applicationB.
Using Docker compose.yml:
version: ‘3.4’
services:
applicationa:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "7001:80"
applicationb:
environment:
- ASPNETCORE_ENVIRONMENT=Development
In dockerfile of applicationa (Exposed port 80), applicationb(exposed port 5000)
Exposed port of applicationB is not mapped to external port thus it is not accessible directly
ApplicationA access applicationB via http://containername:containerexposedport i.e http://applicationb:5000
Using Minikube:
Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: appaappb-deployment
labels:
app: appaappb
spec:
replicas: 1
selector:
matchLabels:
app: appaappb
template:
metadata:
labels:
app: appaappb
spec:
containers:
- name: appa
image: appa:latest
env:
- name: ASPNETCORE_ENVIRONMENT
value: “Development”
ports:
- containerPort: 80
imagePullPolicy: Never
containers:
- name: appb
image: appb:latest
env:
- name: ASPNETCORE_ENVIRONMENT
value: “Development”
ports:
- containerPort: 5000
imagePullPolicy: Never
Service (Map external port)
kubectl expose pod appaappb-deployment-8656cfcdff-wd4hv --name=appaappbservice --type=“NodePort” --target-port 80 --port 80
Now as appA and appB are not in same docker network appA cannot access appB via container name and container internal port
So how to access appB in appA ?
information:
Minikube version:v1.9.2
Docker version: 19.0.3