(如果我把任何条款混合起来,请道歉,对Docker来说还是新的)
我有一个已启用服务器端渲染的dockerized Angular 5应用程序,并在启动时由端口4200上的Express服务器提供服务。当我使用localhost:4200
启动docker run -p 4200:4200 artemzakharov/tryout
或在docker-compose up --build
文件的目录中运行docker-compose.yml
时,我可以在localhost
上访问它,但是当我尝试在群上启动它时正如Docker tutorial的第3步所做的那样,我无法弄清楚它在哪里被托管,更不用说连接到它了。只在Chrome的网址栏中放置docker service ps <name>
适用于教程应用程序,但不是我的,我无法弄清楚我做了哪些不同的事情。如果我运行FROM node:alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . /usr/src/app
EXPOSE 4200
CMD ["npm", "start"]
,我可以看到所有已启动并正在运行的服务。
我的Dockerfile:
version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: artemzakharov/tryout
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 1024M
restart_policy:
condition: on-failure
ports:
- "4200:4200"
networks:
- webnet
networks:
webnet:
我的docker-compose.yml文件:
project
variables.scss
$colors: (
primary: #488aff,
secondary: #32db64,
danger: #f53d3d,
light: #f4f4f4,
dark: #222
);
config.xml
How the application looks when broken, vs loaded properly
更新:我发现,当它以分离模式运行时,我似乎无法连接。似乎它可能是这个问题的一部分。