zol*_*olv 4 docker github-actions
我的一般问题是:如何在 Github 工作流程中获取正在运行的服务名称?
\n我有一个 Keycloak 容器设置为服务,我想通过在 Keycloak 容器内执行脚本来导入领域,这是我的工作流程的片段:
\nname: Test Workflow\n\non:\n push:\n branches-ignore:\n - main\n\njobs:\n test:\n name: Test\n runs-on: ubuntu-latest\n\n services:\n keycloak:\n image: quay.io/keycloak/keycloak:12.0.4\n env:\n KEYCLOAK_USER: "admin"\n KEYCLOAK_PASSWORD: "admin"\n JAVA_OPTS_APPEND: "-Dkeycloak.profile.feature.upload_scripts=enabled"\n ports:\n - "8091:8080"\n volumes:\n - "/workspace/src/main/resources/keycloak:/src/main/resources/keycloak/"\n\n steps:\n - name: Checkout\n uses: actions/checkout@v2\n\n - name: Setup Java\n uses: actions/setup-java@v1\n with:\n java-version: 14\n\n - name: List running containers\n run: docker ps -a\n\n - name: Setup Keycloak realm\n run: |\n docker exec -it keycloak sh -c \n "/opt/jboss/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password admin && \n /opt/jboss/keycloak/bin/kcadm.sh create realms -s realm=testrealm -s enabled=true && \n /opt/jboss/keycloak/bin/kcadm.sh create partialImport -r testrealm -s ifResourceExists=SKIP -o -f /src/main/resources/keycloak/realm.json"\n\n - name: Gradle Test\n run: ./gradlew test\n\n[...]\n\n
Run Code Online (Sandbox Code Playgroud)\n要连接到正在运行的容器,我需要它的名称。服务名称keycloak
不起作用,正如我在 Github 操作日志中看到的正在运行的容器列表一样:
Run docker ps -a\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\nfdb7e1e05296 quay.io/keycloak/keycloak:12.0.4 "/opt/jboss/tools/do\xe2\x80\xa6" 55 seconds ago Up 47 seconds 8443/tcp, 0.0.0.0:8091->8080/tcp 594297e586cd4bdab13cc8fa63b8954d_quayiokeycloakkeycloak1104_1ac754\n
Run Code Online (Sandbox Code Playgroud)\n有没有办法通过运行容器名称连接到正在运行的容器?
\n两种选择:
--name
您可以在服务对象选项中设置:jobs:
test:
name: Test
...
services:
keycloak:
...
options: --name keycloak --hostname keycloak
Run Code Online (Sandbox Code Playgroud)
hostname
. 但这似乎仅在从容器内运行作业时才相关。 归档时间: |
|
查看次数: |
1632 次 |
最近记录: |