environment:
- CHOKIDAR_USEPOLLING=true
.gitignore
.git
.idea
node_modules
FROM node:lts-alpine as build
ARG APP_DIR=app
WORKDIR /${APP_DIR}
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
RUN npm install npm@latest
RUN npm install --no-progress --ignore-optional
RUN npm install @vue/cli -g
EXPOSE 5000
CMD ["npm", "run", "serve"]
version: '3.9'
#настройка сети между контейнерами.
networks:
static-network:
ipam:
driver: default
config:
- subnet: 10.5.0.0/16
services:
database:
image: postgres:13 # имя контейнера
container_name: "postgres_cont"
ports:
- "6532:5432"
env_file:
- pg-env.env # configure env postgres
volumes:
- E:\docker\volumes\postgres:/var/lib/postgresql/data
restart: unless-stopped #рестарт если контейнер "вылетает"
logging: #отключаем логирование в консоли
driver: none
networks:
static-network:
ipv4_address: 10.5.0.5
pgAdmin:
image: dpage/pgadmin4 #имя контейнера
container_name: "pgAdmin_cont"
ports:
- "5555:80"
env_file:
- pgadmin-env.env # configure pgAdmin
depends_on:
- database
volumes:
- E:\docker\volumes\pgAdmin:/var/lib/pgadmin
restart: unless-stopped #рестарт если контейнер "вылетает"
logging: #отключаем логирование в консоли
driver: none
networks:
static-network:
ipv4_address: 10.5.0.8
app_fastapi:
# image: python:3.8
container_name: "app_FastAPI" #имя контейнера
build:
context: ./FastAPI
dockerfile: Dockerfile
volumes:
- ./FastAPI:/app_fastapi
ports:
- 8000:8000
depends_on:
- database
entrypoint: ["python", "main.py"]
restart: unless-stopped #рестарт если контейнер "вылетает"
networks: #принудительно задаём IP
static-network:
ipv4_address: 10.5.0.6
vue_frontend:
container_name: vue_ui
build:
context: ./pprint_vue
dockerfile: Dockerfile
stdin_open: true
tty: true
environment:
- CHOKIDAR_USEPOLLING=true
volumes:
- ./pprint_vue:/app
- /app/node_modules
ports:
- "5000:5000"
restart: unless-stopped #рестарт если контейнер "вылетает"
depends_on:
- app_fastapi
networks: #принудительно задаём IP
static-network:
ipv4_address: 10.5.0.10
volumes:
pprint_vue:
name: pprint_vue
FastAPI:
name: FastAPI
"scripts": {
"serve": "vue-cli-service serve --port 5000",
"build": "vue-cli-service build"
},
return $this->result('Hello World');
return ['result' => 'successful', 'info' => $text];
1. Домен IN-ADDR.ARPA это реальный физический домен, который где-то находится, и обслуживается реальными людьми, или это абстрактное название, которое просто зарезервировано под использование для E-Mail, наравне с 192.168..., 172.27... и 127.0.0.1?
in-addr.arpa
— реальный существующий домен. PTR — понятие DNS, к email оно имеет только косвенное отношение (email использует ptr-записи для ip-адресов).traceroute to ya.ru (87.250.250.242), 30 hops max, 60 byte packets
1 _gateway (192.168.101.1) 49.797 ms 119.433 ms 119.416 ms
2 hosted-by.yourserver.se (95.215.45.5) 119.308 ms 119.242 ms 119.179 ms
3 stk-tct-cr3.be22-1841.rascom.as20764.net (81.27.252.200) 166.091 ms 165.839 ms 165.776 ms
4 * * *
5 178.18.226.119.ix.dataix.ru (178.18.226.119) 165.459 ms 165.345 ms 165.312 ms
6 * ya.ru (87.250.250.242) 79.669 ms *
2. Почему в PTR записях IP адреса записываются в обратном порядке? Какой в этом смысл?
3. Есть ли какой-то софт, позволяющий моделировать сети, скажем поднимать несколько виртуальных машин, и настраивать им разные роли. Например одну сконфигурировать как провайдера, другую как просто компьютер и т.д, чтобы наглядно моделировать взаимодействие в сети интернет, и больше не задавать подобные вопросы здесьЗависит от того, что конкретно вам нужно моделировать. См. в сторону Cisco Packet Tracer, gns3.
FROM node:13 as node WORKDIR /app COPY package.json /app/ COPY package-lock.json /app/ COPY docker-additions/.npmrc /app/ RUN npm install COPY ./ /app/ RUN npm run config RUN npm run build
FROM nginx:1.18.0-alpine COPY --from=node /app/dist/ /usr/share/nginx/html COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf
COPY --from=node /app/dist/ /usr/share/nginx/html
become_user set to user with desired privileges, the user you ‘become’, NOT the user you login as. Does NOT imply become: yes, to allow it to be set at host level.В become_user указывается пользователь, права которого требуется получить через sudo, соответственно нужно было указать root'a, а не myuser.