У меня есть 3 dockerfiles для WIM2 apim, идентификационного сервера и mysql.используя docker-compose для их запуска.Соответствующий docker-compose.yml приведен ниже: -
# docker-compose version
version: "3.7"
# services/containers to be run
services:
wso2am:
build: ./apim
image: wso2am:2.6.0
ports:
- "9443:9443"
links:
- mysql-db
- wso2is-km
wso2is-km:
build: ./is-as-km
image: wso2is-km:5.7.0
ports:
- "9444:9444"
links:
- mysql-db
mysql-db:
build: ./mysql
image: mysql:5.7.26
ports:
- "3306:3306"
- "33060:33060"
При работе без изменения базы данных h2 на mysql Identity Server / apim работает нормально на портах 9444/9443 соответственно.Также в MySQL Docker создал базы данных regdb / apidb sql из папки datascripts на сервере apim / identity.
# Derived from official mysql image (our base image)
FROM mysql:5.7
MAINTAINER Abhilash K R <abhilash.kr@aot-technologies.com>
ENV MYSQL_ROOT_PASSWORD root
# Add a user
ENV MYSQL_USER wso2carbon
ENV MYSQL_PASSWORD wso2carbon
# Add the content of the sql-scripts/ directory to your image
# All scripts in docker-entrypoint-initdb.d/ are automatically
COPY sql-scripts/ /docker-entrypoint-initdb.d
# expose ports
EXPOSE 3306 33060
Добавлен драйвер jdbc и добавлен новый URL-адрес БД, как показано ниже:
<datasource>
<name>WSO2_CARBON_DB</name>
<description>The datasource used for registry and user manager</description>
<jndiConfig>
<name>jdbc/WSO2CarbonDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/regdb</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
<defaultAutoCommit>true</defaultAutoCommit>
</configuration>
</definition>
</datasource>
Получениеошибка как показано ниже: Думая, что ошибка в URL-адресе jdbc: mysql: // localhost: 3306 / regdb, попытался дать localhost / ipDockerhost также все еще не работал.