Docker를 사용하여 갤럭시 서버를 시작할 때 로그인한 사용자만 사용 가능

12005 단어 DockerGalaxy

로그인한 사용자만 도구를 사용할 수 있도록


갤럭시 서버를 손에 들고 있는 컴퓨터로 돌려보세요.에서 실행되는 갤럭시 서버는 손 옆에 있는 기기뿐만 아니라 네트워크를 통해 모든 연결 가능한 기기에서 접근할 수 있다
이 경우 액세스 방법은 http://動作中のマシンのIPアドレス:8080입니다.
초기 상태는 이렇습니다.

로그인 전 Tools에도 다양한 도구가 있어 직접 사용 가능
이런 상황이 의도적이었다면 문제없지만, 모르는 사람이 자기 기계의 갤럭시 서버 도구를 사용하게 하고 싶지 않은 경우도 있다
따라서 도구를 사용하는 상황에서 갤럭시 서버의 설정을 변경해 로그인이 필요하도록 한다

갤럭시 설정 변경


갤럭시에서 서버의 각종 항목의 설정을 유연하게 변경할 수 있다
가장 기본적인 설정 파일은 갤럭시입니다.파일 형식
설정에 대한 자세한 내용은 Galaxy Configuration 참조

설정을 실제로 바꿔볼게요.


여기서 변경할 매개 변수는 Require -login으로 변경
require_login의 기본값은 가짜입니다. 이 경우 갤럭시 서버에 접근할 수 있는 사용자는 로그인하지 않아도 도구를 이용할 수 있습니다
여기는 리퀴어입니다.login 설정을 바꿔서 갤럭시를 시작하도록 하겠습니다.
Galaxy's config settings에 따르면 Docker 버전의 갤럭시docker run에서는 환경 변수를 설정하여 갤럭시를 만든다.yml의 설정값을 변경할 수 있음을 기록합니다
Every Galaxy configuration parameter in config/galaxy.ini can be overwritten by passing an environment variable to the docker run command during startup. The name of the environment variable has to be: GALAXY_CONFIG+ the_original_parameter_name_in_capital_letters For example, you can set the Galaxy session timeout to 5 minutes by adding -e "GALAXY_CONFIG_SESSION_DURATION=5"to the docker run commandGALAXY_CONFIG_ 이외에 매개 변수의 문자열을 대문자로 설정합니다
여기 설정은 리퀴어-로진이니까.
$ docker run -d --rm \
    -p 8080:80 -p 8021:21 -p 8022:22 -p 8800:8800 \
    --volumes-from galaxy-store \
    --privileged=true  \
    -e GALAXY_CONFIG_ENABLE_BETA_MULLED_CONTAINERS=True \
    -e GALAXY_CONFIG_REQUIRE_LOGIN=True \
    -e ENABLE_TTS_INSTALL=True \
    bgruening/galaxy-stable
로그인 없이 Tools 창과 History 창이 사라지고 로그인 화면만 표시됩니다.

galaxy.페이지 번호 수정


Docker 컨테이너의 갤럭시 서버 버전이 아닌 갤럭시.yml 파일을 변경해서 설정을 변경합니다
require_로그인을 진짜로 설정하여 로그인이 필요하도록 동작을 변경합니다
갤럭시 Configuration, 갤럭시.갤럭시 디렉터리의config에 yml가 존재한다고 쓰여 있습니다
Configuration files can be found underneath the config/subdirectory, wherein you can find .sample files corresponding to configuration files that you can modify by copying the .sample to . In many cases, you will find that the sample configuration provides the most up-to-date and detailed documentation about the features configured therein.
현재 수호 모드에서 실행 중인 갤럭시 용기에 연결하여 이 파일을 다시 쓰기/만듭니다
먼저 현재 실행 중인 갤럭시 컨테이너의 "CONTAINER ID"를 확인합니다.
$ docker ps
CONTAINER ID        IMAGE                     COMMAND              CREATED             STATUS              PORTS                                                                                                         NAMES
0498d80bbb78        bgruening/galaxy-stable   "/usr/bin/startup"   17 minutes ago      Up 17 minutes       443/tcp, 9002/tcp, 0.0.0.0:8800->8800/tcp, 0.0.0.0:8021->21/tcp, 0.0.0.0:8022->22/tcp, 0.0.0.0:8080->80/tcp   jovial_hertz
여기 "CONTAINER ID"는 0498d80bbb78입니다.
이 ID는 컨테이너의 실행에 따라 다릅니다.
환경 변수에 뒤에 설명된 대로 "CONTAINER ID"를 저장합니다.
export CONTAINER_ID="0498d80bbb78"
("0498d80bbbbbb78"부분은 각각의 CONTAINER ID로 대체)
현재 실행 중인 용기에 연결하여 해당하는 파일을 변경해 보십시오
$ docker exec -it ${CONTAINER_ID} /bin/bash
root@0498d80bbb78:/galaxy-central# ls config
auth_conf.xml.sample                    job_resource_params_conf.xml.sample  shed_tool_conf.xml.sample
build_sites.yml.sample                  lmod_modules_mapping.yml.sample      shed_tool_data_table_conf.xml
containers_conf.yml.sample              local_conda_mapping.yml.sample       shed_tool_data_table_conf.xml.sample
data_manager_conf.xml.sample            migrated_tools_conf.xml              swarm_manager_conf.yml.sample
datatypes_conf.xml.sample               migrated_tools_conf.xml.sample       tool_conf.xml.main
dependency_resolvers_conf.xml.sample    object_store_conf.xml.sample         tool_conf.xml.sample
disposable_email_blacklist.conf.sample  oidc_backends_config.xml.sample      tool_data_table_conf.xml.sample
error_report.yml.sample                 oidc_config.xml.sample               tool_destinations.yml.sample
galaxy.yml.docker_sample                openid_conf.xml.sample               tool_sheds_conf.xml.sample
galaxy.yml.sample                       plugins                              tool_shed.yml.sample
job_conf.xml.docker_sample              reports.yml.sample                   user_preferences_extra_conf.yml.sample
job_conf.xml.sample_advanced            shed_data_manager_conf.xml           workflow_resource_mapper_conf.yml.sample
job_conf.xml.sample_basic               shed_data_manager_conf.xml.sample    workflow_resource_params_conf.xml.sample
job_metrics_conf.xml.sample             shed_tool_conf.xml                   workflow_schedulers_conf.xml.sample
목록에 갤럭시가 있는 것 같아요.없는 것 같아요.
갤럭시 Configuration 읽을 때.
Edit config/galaxy.yml (copy it from config/galaxy.yml.sample if it does not exist) to make configuration changes.
galaxy.갤럭시가 없으면yml.Sample을 복사해서 사용하라고 써있어요.
그대로 합시다
inside_docker_container
root@0498d80bbb78:/galaxy-central# cd config
root@0498d80bbb78:/galaxy-central/config# cp galaxy.yml.sample galaxy.yml
galaxy.yml에 포함 여부 확인GALAXY_CONFIG_REQUIRE_LOGIN=True
root@0498d80bbb78:/galaxy-central/config# cat -n galaxy.yml| grep "require_login"
  1259    #require_login: false
  1262    # page (even if require_login is True)
이미 정해진 값과 같기 때문에 1259줄에 확실히 존재한다
그 다음에 적당한 편집을 하고 1259줄 다음에 쓴다config그리고 갤럭시 서버 프로세스를 다시 시작합니다
inside_docker_container
root@0498d80bbb78:/galaxy-central/config# supervisorctl restart galaxy:
galaxy:galaxy_nodejs_proxy: stopped
galaxy:handler0: stopped
galaxy:galaxy_web: stopped
galaxy:handler1: stopped
galaxy:galaxy_nodejs_proxy: started
galaxy:galaxy_web: started
galaxy:handler0: started
galaxy:handler1: started
그럼 결과는 어떻게 됐나요?

아무것도 바뀌지 않았어요.
실제로 Docker 용기의 갤럭시는 슈퍼바이저에서 관리하기 때문에 일반 갤럭시와는 설정이 다르다

galaxy.어디 있어요?


슈퍼visord 프로필이 어떤 갤럭시인지 참고하십시오.Yml을 사용했는지 확인을 해볼게요.
inside_docker_container
root@0498d80bbb78:/galaxy-central/config# ls /etc/supervisor/conf.d
galaxy.conf
root@0498d80bbb78:/galaxy-central/config# grep "galaxy.yml" /etc/supervisor/conf.d/galaxy.conf 
command         = /galaxy_venv/bin/uwsgi --virtualenv /galaxy_venv --yaml /etc/galaxy/galaxy.yml --logdate --thunder-lock --master --processes %(ENV_UWSGI_PROCESSES)s --threads %(ENV_UWSGI_THREADS)s --logto /home/galaxy/logs/uwsgi.log --socket 127.0.0.1:4001 --pythonpath lib --stats 127.0.0.1:9191 -b 16384
command         = /galaxy_venv/bin/python ./lib/galaxy/main.py -c /etc/galaxy/galaxy.yml --server-name=handler%(process_num)s --log-file=/home/galaxy/logs/handler%(process_num)s.log
이 Docker image의 갤럭시 서버가 사용 중인 것으로 발견됨require_login

적당한 갤럭시.이용하다


galaxy.yml의 설정 파일이 어디에 있는지 알았기 때문에 갤럭시 서버를 사용하도록 변경합니다
변경 내용을 지속시키기 위해 호스트 측 갤럭시입니다.yml을 Docker container 내부에 설치하여 사용

설정 변경


먼저 호스트의 파일 시스템에서 해당 파일을 복사합니다.
$ docker exec ${CONTAINER_ID} cat /etc/galaxy/galaxy.yml > galaxy.yml
파일이 호스트에 복사되어 호스트에 있는 갤럭시로 복사됩니다.yml에 require_login: true 아까처럼 추가
현재 시작 중인 컨테이너 중지
$ docker kill ${CONTAINER_ID} 
수호 모드로 새 용기를 시작합니다
$ docker run -d --rm \
    -p 8080:80 -p 8021:21 -p 8022:22 -p 8800:8800 \
    --volumes-from galaxy-store \
    -v ${PWD}/galaxy.yml:/etc/galaxy/galaxy.yml \
    --privileged=true  \
    -e GALAXY_CONFIG_ENABLE_BETA_MULLED_CONTAINERS=True \
    -e ENABLE_TTS_INSTALL=True \
    bgruening/galaxy-stable
호스트 현재 디렉터리의 갤럭시입니다.용기의/etc/galaxy/galaxy.yml에서 지도는 다음과 같은 부분입니다./etc/galaxy/galaxy.yml
절대 경로를 사용하여 경로 지정
위 설정이 완료되면 브라우저 연결을 통해 결과를 확인합니다

예상 화면 표시
이거 갤럭시.yml 파일은 용기 환경이 아닌 갤럭시 서버에서도 사용할 수 있습니다 (마땅히)
이번엔 여기까지

좋은 웹페이지 즐겨찾기