Docker apache 鳄梨酱 - GUACAMOLE_HOME 不会改变

Docker apache guacamole - GUACAMOLE_HOME wont change

我在 docker-compose 上使用 apache guacamole,似乎无法编辑 tomcat HTML 文件。 我真的需要从控制面板中删除用户“主页”按钮 (ctrl + alt+ shift)

我试过添加新的扩展,但我不能,因为当我设置 GUACAMOLE_HOME 到“/guacamole-home”,我在其中创建了一个新扩展的 .jar,它始终将其设置为默认的“/root/.guacamole”。

我怎样才能完成这项工作?即使有另一种方法可以用另一种方式编辑鳄梨酱中的 client.html

guacamole:
                image: guacamole/guacamole:latest
                depends_on:
                      - guacd
                      - postgres_gqm
                volumes:
                        - /root/api/program.jar:/opt/guacamole/program.jar
                        - /root/api/guacamole-home:/guacamole-home
                environment:
                        - "enable-environment-properties=true"
                        - "GUACD_HOSTNAME=guacd"
                        - "POSTGRES_DATABASE=guacamole_db"
                        - "POSTGRES_HOSTNAME=postgres_gqm"
                        - "POSTGRES_PASSWORD=pass"
                        - "POSTGRES_USER=guacamole_user"
                        - "GUACD_LOG_LEVEL=debug"
                        - "GUACAMOLE_HOME=/guacamole-home"
                links:
                     - guacd
                ports:
                     - 8080/tcp
                restart: always

我设法使用扩展名更改了鳄梨酱上的 tomcat HTML 文件,但没有按照文档建议的方式进行更改。

首先,我将此文件从容器鳄梨酱复制到主机:

docker cp <containerid>:/usr/local/tomcat /root/myhome
docker cp <containerid>:/opt/guacamole/bin/start.sh /root/myhome

然后当我有文件时我可以编辑下面的 client.html tomcat/webapps/guacamole/app/client/templates/client.html 在我的本地主机上。

所以我做扩展的方法是首先你去 start.sh 脚本 我在本地主机上复制并将此行添加到此行号:

238:    ln -s /opt/guacamole/program.jar "$GUACAMOLE_EXT"
389:    ln -s /opt/guacamole/program.jar "$GUACAMOLE_EXT" 

应该在start.sh这里:

# Add required .jar files to GUACAMOLE_LIB and GUACAMOLE_EXT
ln -s /opt/guacamole/postgresql/postgresql-*.jar "$GUACAMOLE_LIB"
ln -s /opt/guacamole/postgresql/guacamole-auth-*.jar "$GUACAMOLE_EXT"
ln -s /opt/guacamole/program.jar "$GUACAMOLE_EXT" #ADDED

这里:

# Add required .jar files to GUACAMOLE_LIB and GUACAMOLE_EXT
ln -s /opt/guacamole/mysql/mysql-connector-*.jar "$GUACAMOLE_LIB"
ln -s /opt/guacamole/mysql/guacamole-auth-*.jar "$GUACAMOLE_EXT"
ln -s /opt/guacamole/program.jar "$GUACAMOLE_EXT" #ADDED

现在,我们需要对 HTML 和 JS 进行扩展和更改: 在本地主机中:

mkdir myExt
cd myExt

vi guac-manifest.json #创建 guac-manifest.json

{   "guacamoleVersion" : "*",

    "name"      : "B-Override",
    "namespace" : "b-override",

    "html" : [ "client.html" ],
    "js": ["clientController.js"]
}

我想改client.html和clientController.js(替换原文件名没关系,我选择不替换guac-manifest.json.

我想从用户面板菜单中删除 (ctrl+alt+shift) 连接下拉菜单 + 注销或返回主页的选项,所以我从我们复制的 tomcat 文件中复制了原始 client.html到本地主机:

cp ../tomcat/webapps/guacamole/app/client/templates/client.html .

还有:

cp ../tomcat//webapps/guacamole/app/client/controllers/clientController.js .

因为我还想从虚拟机关闭时鳄梨酱给出的弹出窗口中删除主页和注销按钮。(重新连接 - 主页 - 注销)

现在,

我编辑了刚刚复制到 myExt 的文件:

vi client.html

我将此添加到文件顶部:

<meta name="replace-children" content=".menu .menu-content .header">

它替换了我想要的 HTML 中的部分,我可以从文件中删除我不编辑的部分,它只会替换原始文件中的 class我在内容中添加

小例子:

<meta name="replace-children" content=".menu .menu-content .header">
    <div class="menu" ng-class="{open: menu.shown}" id="guac-menu">
        <div class="menu-content" ng-if="menu.shown">

            <!-- Stationary header -->
            <div class="header">
                <h2 class="connection-select-menu" ng-show="rootConnectionGroups">
                    <guac-menu menu-title="client.name" interactive="true">

您可以将我想要替换的代码中的 classes 添加到带有“.”的内容中。在它前面(这就是我对如何更换零件的理解,我知道它与 css 文件有关,但这样让我更容易理解)

在我想修改的 js 中,我没有删除不需要更改的部分,因为它的工作原理不一样,我转到“action =”并删除了 HOMELOGGOUT 选项并像这样保存它,不需要像 HTML.

这样的文件头上的任何东西

现在扩展已准备就绪,我们需要将其作为 jar 文件 + volume start.sh 到鳄梨酱容器:

首先我们需要安装它以获得 jar 选项:(ubuntu)

apt install default-jdk openjdk-11-jdk-headless fastjar openjdk-8-jdk-headless

然后我们走出 myExt 目录:

cd ..

jar cvf program.jar -C myExt .

现在我们转到 docker-compose.yml 并添加卷:

guacamole:
        image: guacamole/guacamole:latest
        depends_on:
              - guacd
              - postgres_gqm
        volumes:
                - /root/myhome/start.sh:/opt/guacamole/bin/start.sh #ADDED
                - /root/myhome/program.jar:/opt/guacamole/program.jar #ADDED
        environment:
                - "GUACD_HOSTNAME=guacd"
                - "POSTGRES_DATABASE=guacamole_db"
                - "POSTGRES_HOSTNAME=postgres_gqm"
                - "POSTGRES_PASSWORD=PassWrdGQM"
                - "POSTGRES_USER=guacamole_user"
                - "GUACD_LOG_LEVEL=debug"
        links:
             - guacd
        ports:
             - 8080/tcp
        restart: always

现在:

docker-compose down
docker-compose up -d ; docker-compose logs -f --tail=10 guacamole 

并寻找扩展负载:

guacamole_1       | 09:50:10.683 [localhost-startStop-1] INFO  o.a.g.extension.ExtensionModule - Extension "B-Override" loaded.

如果您发现自己犯了错误,可以随时返回并通过删除 /root/myhome/program.jar 从本地主机,返回 myEXT 重新复制 client.html 文件或编辑它,再次将其作为 jar 和 docker-compose down + up.

关闭