mysql:8.0
hostname: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: lk
ports:
- 3306:3306
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
lk:
build:
context: ./server
dockerfile: Dockerfile
hostname: lk
volumes:
- ./server:/server
depends_on:
- mysql
ports:
- 3000:3000
- 3001:3001
- 3306:3306
environment:
- DATABASE_TYPE=mysql
- DATABASE_URL=127.0.0.1
- DATABASE_PORT=3306
- DATABASE_NAME=lk
- DATABASE_USER=root
- DATABASE_PASSWORD=root
- JWT_KEY=723492873598
- JWT_EXPIRATION=3600
- HTTP_PORT=3000
- PULTS_PORT=3001
- INITIAL_PACK_ID_FOR_PULT=0
- SUPERADMIN_LOGIN=user3
- SUPERADMIN_PASSWORD=user3
# - TLS_CERT=C:/certificates/certificate.crt
# - TLS_KEY=C:/certificates/privateKey.key
Attaching to lk-lk-1, lk-mysql-1
Error response from daemon: driver failed programming external connectivity on endpoint lk-lk-1 (c7f21470c737c98814df0effa64a19c136bca787d4974f1b33cce38f2726cfd3): Bind for 0.0.0.0:3306 failed: port is already allocated
Порт на локалхосте не занят, проверял.
Может кто помочь?
ты его сам же соседним контейнером занимаешь
но ему нужен доступ к бд
или это не так делается?)
А причем тут проброс порта на хост вообще
вот отсюда убери 3306 ports: - 3000:3000 - 3001:3001 - 3306:3306 и вот тут поменяй - DATABASE_URL=mysql
Для общения контейнеров друг с другом ports вообще не нужен
Получается они друг к другу имеют доступ сами?
Если находятся в одном network. docker-compose сам его создаёт
Ты папку server с хоста монтируешь
Разве WORKDIR не просто задаёт рабочую директорию для следующих инструкций?
Где я говорил про workdir
Обсуждают сегодня