Skip to content

Latest commit

 

History

History
157 lines (115 loc) · 4.33 KB

README.md

File metadata and controls

157 lines (115 loc) · 4.33 KB

本容器在MacOS环境下的使用方法

clone项目

首先把项目clone到本地。

安装java

使用sdkman安装java

$ sdk install java 11.0.3.hs-adpt
$ sdk use java 11.0.3.hs-adpt

Using java version 11.0.3.hs-adpt in this shell.
$ java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)

启动容器

启动容器,注意容器会启动postgresql服务,要停掉host的本地postgresql服务:

$ pg_ctl -D /usr/local/var/postgres stop

停掉本地服务以后,运行下面的命令:

$ docker-compose -f docker-compose-production.yml up  

host连接容器的数据库试试看:

$ psql -U foo_usr -h localhost foo_db
Password for user foo_usr: foo
psql (10.4, server 9.6.13)
Type "help" for help.

foo_db=>

如上所示,可以在host这边通过端口访问容器的数据库。

挂装容器内部的hibernate工程目录至host

查看容器映射出来的ssh服务的接口:

$ docker ps
CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS                                           NAMES
f940b1aff81b        weli/docker-hibernate-build:latest   "/var/run/postinstal…"   4 hours ago         Up 4 hours          0.0.0.0:5432->5432/tcp, 0.0.0.0:32771->22/tcp   docker-hibernate-build_default_1

如上所示,映射出来的端口是32771。使用ssh登录试试看:

$ ssh root@localhost -p 32771
$ ssh root@localhost -p 32771
Warning: Permanently added '[localhost]:32771' (ECDSA) to the list of known hosts.
root@localhost's password: foo
Linux f940b1aff81b 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Jul 21 10:05:56 2019 from 172.21.0.1
root@f940b1aff81b:~#

如上所示,成功登录,注意root的登录密码是foo

通过ssh挂装容器里的目录至host,需要安装sshfs

$ brew install sshfs

安装好以后,挂装容器目录:

$ ssh -p 32771 root@localhost:/ /work

第一次挂装的时候,MacOS会弹出安全设置的提示,允许sshfs的权限操作就可以了。如果挂装成功,可以看到host/work目录里面已经是容器的根目录了:

$ ls /work
bin   dev   home  lib64 mnt   proc  run   srv   tmp   var
boot  etc   lib   media opt   root  sbin  sys   usr   work
$

接下来可以看看容器内部的work目录内容:

$ ls /work/work
hibernate-orm

可以看到容器里面的hibernate-orm这个已经编译好的工程目录:

$ ls /work/work/hibernate-orm
CONTRIBUTING.md                        hibernate-infinispan
README.md                              hibernate-integrationtest-java-modules
build.gradle                           hibernate-java8
buildSrc                               hibernate-jcache
changelog.txt                          hibernate-jipijapa
databases                              hibernate-orm-modules
dco.txt                                hibernate-osgi
documentation                          hibernate-proxool
etc                                    hibernate-spatial
gradle                                 hibernate-testing
gradlew                                hibernate-vibur
gradlew.bat                            hibernate_logo.gif
hibernate-agroal                       lgpl.txt
hibernate-c3p0                         migration-guide.adoc
hibernate-core                         release
hibernate-ehcache                      settings.gradle
hibernate-entitymanager                shared
hibernate-envers                       tooling
hibernate-hikaricp                     utilities.gradle
$

这样,在host这边就可以直接访问容器里面的hibernate-orm目录了。

开发模式

$ docker-compose -f docker-compose-development.yml up  

登录容器

$ docker exec -it docker-hibernate-build_default_1 bash