developers.redhat.com, developer.redhat.com的源代码

分享于 

27分钟阅读

GitHub

  繁體 雙語
Sources for developer.redhat.com
  • 源代码名称:developers.redhat.com
  • 源代码网址:http://www.github.com/redhat-developer/developers.redhat.com
  • developers.redhat.com源代码文档
  • developers.redhat.com源代码下载
  • Git URL:
    git://www.github.com/redhat-developer/developers.redhat.com.git
    Git Clone代码到本地:
    git clone http://www.github.com/redhat-developer/developers.redhat.com
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/redhat-developer/developers.redhat.com
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    红帽开发者网站

    打开红帽开发者网站

    本文档为开发人员提供了安装和使用开发环境所需的指导。 它是按时间顺序排列的。首先描述如何进行环境的第一次设置。 最后,讨论了一些杂项主题。

    首次环境设置

    在开发中推荐 Docker,但它不是完全必要的。 如果你没有使用 Docker,将不支持。 这在Linux上最有效,但我们确实有Mac用户在这个环境中成功开发。 下面几节介绍了为了设置环境而首次运行环境所需要做的步骤。

    存在一些常见的问题:你可能会遇到问题,请在寻求帮助前先查看它们。

    命令行实用程序

    你应该运行 bash shell ( Linux或者 Mac ),你将需要: git和 curl。

    ( 仅适用于苹果机)

    如果你在mac上,那么brew就需要安装一些依赖的软件包。 Brew就像 apt-get mac。 遵循他们的指示,并确保没有错误。

    Docker

    对于 Linux,按照以下说明安装你的系统 [here] ( https://docs.docker.com/installation/ )的最新 Docker。 本机'。Docker的'现在推荐用于那些使用 macOS的人。 没有人尝试开发 Windows,所以目前还不知道需要做什么。

    脚本假定你可以在没有sudo的情况下运行 docker 命令。

    注意:我们使用的特性要求你至少有 Docker 1.10和docker安装 1.6.

    Docker 组成

    Mac: Docker 组件将作为 Docker 安装的一部分安装在中。 Linux: 按照说明安装最新的docker组合 [here] ( https://github.com/docker/compose/releases )

    register 在 DockerHub

    项目对某些映像使用 private Docker 存储库,并访问这些映像,你将需要在 DockerHub文件中对这些映像进行访问。 注册后,向项目团队的成员提供你的用户名,该成员可以授予你对项目的private 存储库的访问权限。

    另外,你需要确保本地机器上的Docker 守护进程通过新的DockerHub帐户进行验证。 要执行这里操作,请执行以下操作:

    
    docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
    
    
    
    

    对于 上面,请将 $DOCKER_HUB_USERNAME$DOCKER_HUB_PASSWORD 替换为你的帐户详细信息。

    测试

    此时,你必须能够运行以下命令而无错误:

    
     docker run hello-world
    
    
     docker-compose version
    
    
    
    

    如果运行这些命令时遇到问题,请参考 Docker 安装说明。 目前还没有采取任何特定的步骤,因此 Docker 是修复问题的参考点。 如果本指南中缺少任何内容,请提交申请。

    安装和安装

    在本地运行Drupal有一些要求: php,以及一些扩展,Composer,还有 mysql/MariaDB。

    Mac

    请从Oracle安装完整的mysql,以便你可以访问命令行工具。

    
     brew install php70 php70-xdebug composer
    
    
    
    
    Linux

    所有必需的依赖项都应该能够使用你的包管理器( yum,dnf,apt等) 安装。 在 fedora/centos机器上,你需要以下依赖项:

    
     php70
    
    
     php_gd
    
    
     php_pdo
    
    
     php_mysql
    
    
     php_xdebug
    
    
     php_xml
    
    
     php_mbstring
    
    
     composer
    
    
     mariadb-client
    
    
    
    

    项目签出

    创建 fork,然后克隆你的fork 并添加 upstream 存储库(。请确保安装了当前版本的git )。

    
     git clone git@github.com:YOUR_USER_NAME/developers.redhat.com.git
    
    
     cd developers.redhat.com
    
    
     git remote add -f upstream git@github.com:redhat-developer/developers.redhat.com.git
    
    
    
    

    node.js-安装

    注意:需要在主机上安装和 npm,而不需要在 Docker 容器中安装。

    请遵循 https://nodejs.org/en/ 下载和安装 node 和 npm。 所有内容都应该在nodejs版本> 0.10上工作

    执行以下命令以获取 node 环境设置:

    npm安装

    在项目的root 中运行 $(npm bin)/gulp 以生成JS和CSS文件。

    启动 Drupal

    运行以下脚本:

    
     bash./setup_local_drupal.sh
    
    
    
    

    这将获取Drupal的数据库备份,运行 Composer 并启动 Drupal。 假设没有错误,你应该能够在 127.0.0.1: 8888访问 Drupal。

    页面布局更改( 快速)

    如果你只是对Drupal页面的布局文件进行更改,请按以下步骤操作:

    • 对布局文件( *。小枝文件) 进行更改。
    • 在受更改影响的网页上引导你的网页浏览器。
    • 请注意,更改已经被。

    JavaScript和CSS更改( 快速)

    如果需要对JavaScript或者CSS文件进行更改,只需运行 Gulp ( 接受 ~2secs),然后观察更改)。 要执行这里操作:

    • 进行所需更改。
    • 在项目的root 中运行 gulp
    • 在受更改影响的网页上引导你的网页浏览器。
    • 请注意,更改已经被。

    旧安装程序,需要在本地运行单元测试

    以下是较旧的开发设置。 在本地运行单元测试。测试站点导出。运行awestruct或者运行Searchisko时,你需要遵循它。

    基本 ruby-安装

    在这个项目中 Docker 和docker的组合是通过在 _docker/control.rb 中找到的ruby 脚本来管理的。 为了运行这里命令,你需要 ruby 2.1或者 GREATER。 以下指令通过'rbenv'安装 ruby。 你可以使用其他方法,但是你的里程可能不同,而且可能会让我们难以支持你。 如果已经安装 RVM,则需要将它的删除以使用。

    安装的预先要求

    Mac:

    
     brew install openssl libyaml libffi
    
    
    
    

    Ubuntu/Debian/Mint:

    
     apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
    
    
    
    

    centos/fedora:

    
     yum install -y gcc openssl-devel bzip2 libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel
    
    
    
    
    rbenv的安装

    Mac:

    
     git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    
    
     echo 'export PATH="$HOME/.rbenv/bin:$PATH"'>> ~/.bash_profile
    
    
     echo 'eval"$(rbenv init -)"'>> ~/.bash_profile
    
    
     source ~/.bash_profile
    
    
    
    

    Linux:

    
     git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    
    
     echo 'export PATH="$HOME/.rbenv/bin:$PATH"'>> ~/.bashrc
    
    
     echo 'eval"$(rbenv init -)"'>> ~/.bashrc
    
    
     source ~/.bashrc
    
    
    
    
    rbenv构建的安装
    
     git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    
    
    
    
    安装和安装 ruby
    
     rbenv install 2.1.2
    
    
     rbenv global 2.1.2
    
    
     gem update --system
    
    
     gem install bundler
    
    
     rbenv rehash
    
    
    
    

    密钥文件访问

    为了构建站点,你必须请求访问机密文件( _config/secrets.yaml.gpg )。 这是需要的,以便你可以访问调用站点构建中使用的服务所需的各种API键。 将密钥文件签入到 git ( 所以总是包含所有密钥。密码和用户名的电子邮件版本)。 文件使用GPG加密。

    获得对秘密 file:的访问权限

    Mac:

    • 在这里从安装 GPGSuite
    • 在GPGSuite中创建新的密钥对。
    • 将公钥上载到密钥服务器,以便用户可以访问它。
    • 在红帽开发人员工程团队中通知某人你希望你的密钥添加到保险库。 一定要让他们知道你与密钥相关的电子邮件地址。
    • 等待为密钥文件更新创建( 由工程团队)的请求请求。
    • 通过将 secrets.yaml.gpg 文件从拉请求复制到代码检查的_config/secrets.yaml.gpg 位置来查看机密文件更新。
    • 在确认可以构建站点的情况下,继续以下说明并评论,请求,因这里将成功地更新该机密文件。

    Linux和 Windows:

    请联系 Paul,。有人这么做,我只是没有文档。

    设置

    首先请求对生产数据转储的访问。 这样你就可以在开发环境中拥有一个类似环境的产品。 要请求访问,请向红帽开发者工程团队发送 GitHub ID并请求访问 redhat-developer 组织中的searchisko-docker repo。 一旦你有了访问权限:

    下载 MySQL数据转储插件并复制到_docker/mysql/searchisko_mysql_data.tar.gz

    下载 ElasticSearch数据转储插件并复制到_docker/searchisko/searchisko_es_data.tar.gz

    将主机 docker 添加到 /etc/hosts 文件中。 如果你是在Linux上构建的,请将IP地址设置为 127.0.0.1。 如果你在Mac上,因这里使用rtc机器,你需要将IP地址设置为图像。 你可以通过运行 docker-machine ip default 来发现这个IP地址

    _docker 目录中运行 bundle install,下载必要的ruby gem。

    正在运行单元测试

    运行单元测试( 也可以在本地使用 guard )。

    
     bundle exec./control.rb -e drupal-dev -t
    
    
    
    

    正在运行站点导出

    生产站点实际上是 static 产品的导出,由( 内部承载)的生产服务器提供。

    为了创建站点的static 版本,执行了一个导出过程。

    这些部分描述了如何从开发环境中运行这个。

    
    bundle exec./control.rb -e drupal-dev --export
    
    
    
    

    导出过程完成后,你就可以在计算机上访问站点上的站点的static HTML版本。

    运行验收测试( 慢)

    本节解释开发人员如何运行前端验收测试。

    为了针对本地运行的Drupal站点导出运行验收测试,确保 Drupal Docker 容器正在运行,并且站点已经导出。

    
    bundle exec./control.rb -e drupal-dev --acceptance_test_target=http://docker:9000
    
    
    
    

    针对本地运行的Drupal服务器运行验收测试

    
     bundle exec./control.rb -e drupal-dev --acceptance_test_target=http://docker
    
    
    
    

    要对远程主机运行验收测试,请执行以下操作:

    
    bundle exec./control.rb -e drupal-dev --acceptance_test_target=host_you_want_to_test
    
    
    
    

    可以使用许多短密钥在我们的各种环境中运行测试:

    • Drupal开发:运行 bundle exec./control.rb -e drupal-dev --acceptance_test_target=drupal_dev
    • 登台:运行 bundle exec./control.rb -e drupal-dev --acceptance_test_target=staging

    注:- - never永远不要对生产运行验收检验。 这可能会影响站点统计 ! 我们有一组烟雾测试可以根据生产运行,以便快速检查站点。 可以通过运行以下命令来执行冒烟测试:

    
    CUCUMBER_TAGS=@smoke bundle exec./control.rb -e drupal-dev --acceptance_test_target=production
    
    
    
    

    在本地工作时,你可能会发现在 Docker 之外运行测试会更快。 提供你的堆栈已经在运行( 如果测试本地生成)。 执行以下操作:

    
    rake features HOST_TO_TEST=host_you_wish_to_test
    
    
    
    

    Drupal配置更改

    实现这一目标最简单的方法是在Drupal的UI中进行必要的更改,然后将它们导出到 sync 目录。

    导出可以从UI中完成,然后手动将zip文件的内容复制到 sync 目录中,也可以通过drush来完成。

    要使用 drush,你需要在 web 目录中

    
    cd web
    
    
    ../vendor/bin/drush config-export
    
    
    
    

    Drupal内容创建

    ,这些说明是为?

    如果你是内容创建者或者组织者,这些Drupal内容类型将允许你拥有管理的集中位置:

    • 书籍
    • 事件
    • 影片
    • 连接线

    :这怎么让我的生活变得轻松

    由于内容现在直接从Drupal管理,所以内容创建者/所有者可以很容易地操纵它。 一旦更改完成,它们将很快反映在各自的RHD页面上。 此外,我们还利用了其他drupal导出服务来确保对 Searchisko ( DCP )的影响最小。

    我如何创建新的图书?

    要进行完整演示,请参考 below 视频:

    
    https://drive.google.com/open?id=0Bwx86SOh3ez-eW5TRFZKLTFVeUk
    
    
    
    
    添加新书的步骤。

    登录到rhd生产环境的Drupal。

    点击内容> 添加内容> 图书

    填写所需字段。

    注: 新内容将显示而不显示样式。 因为RHD依赖于大多数内容,所以within将检索这个新创建的项目,在 24小时内更改 RHD。

    如何创建新连接器?

    要进行完整演示,请参考 below 视频:

    
    https://drive.google.com/open?id=0Bwx86SOh3ez-Q2RnMGx3Q3RLUUE
    
    
    
    
    添加新连接器的步骤。

    登录到rhd生产环境的Drupal。

    点击内容> 添加内容> 连接器

    填写所需字段。

    注: 新内容将显示而不显示样式。 因为RHD依赖于大多数内容,所以within将检索这个新创建的项目,在 24小时内更改 RHD。

    如何创建新视频?

    要进行完整演示,请参考 below 视频:

    
    https://drive.google.com/open?id=0B9M2ZSLcm2xXTWhHRmt4eV9HNFk
    
    
    
    
    添加新视频的步骤。

    登录到rhd生产环境的Drupal。

    点击内容> 添加内容> 视频资源

    填写所需字段。

    注: 新内容将显示而不显示样式。 因为RHD依赖于大多数内容,所以within将检索这个新创建的项目,在 24小时内更改 RHD。

    如何添加新事件?

    要进行完整演示,请参考 below 视频:

    
    https://drive.google.com/open?id=0Bwx86SOh3ez-LXpOOEs1cHN6Wkk
    
    
    
    
    添加新事件的步骤。

    登录到rhd生产环境的Drupal。

    单击内容> 添加内容> 事件

    填写所需字段。

    注: 新内容将显示而不显示样式。 因为RHD依赖于大多数内容,所以within将检索这个新创建的项目,在 24小时内更改 RHD。

    如果我很难添加新内容或者内容类型不代表我期望的?

    你可以与 Jason。Adela Arreola。Luke Dary或者 Dan Coughlin ( 所有可以在HipChat或者电子邮件中使用) 联系,了解有关改进的任何问题或者想法。

    MODULE 开发

    所有 MODULE 开发都必须在 _docker/drupal/drupal-filesystem/web/modules/custom/<module name> 通常使用 PhpStorm 或者文本编辑器完成工作。 如果修改现有 MODULE的yaml文件,你可能需要重新启动Drupal容器,以便正确获取和应用所有的数据。 你也可以尝试使用 drush updatedb 命令,但它可能无法获取所有内容。

    新模块必须至少有基本的基础,并且 drupal_install_checker.rb 文件更新以在容器构建中安装 MODULE。

    secrets.gpg 管理( 被淘汰)

    本节描述红帽开发人员工程团队的成员如何为新开发人员授予对机密文件的访问权限。

    secrets.yaml.gpg 文件是使用带有多个收件人的GPG加密的。 vim-gnupg ( https://github.com/jamessan/vim-gnupg ) 之类的插件使编辑文件变得简单:

    • 使用 Pathogen 安装vim和 vim-gnupg 比如
    • 使用vim打开文件 _config/secrets.yaml.gpg
    • 使用 :GPGEditRecipients 命令打开收件人列表
    • 将相关用户的电子邮件地址添加到编辑区域的底部
    • 写入并退出这里编辑区域,使用 :wq:wq的主文件
    • 提交更新的_config/secrets.yaml.gpg

    为这里,你需要将用户密钥的public 加载到钥匙串中。 你将需要使用你的平台上的首选工具将钥匙添加到钥匙串。 例如我们推荐GPGSuite用于Mac操作系统。 在这种情况下:

    • 加载 GPG Keychain Access 应用程序
    • 选择 key -> Retreive rom key server
    • 传入需要添加的public 密钥的ID。

    至少需要以下收件人列表来加密 file:

    • :: (:: 0 x6CE6E8FB45FE317D在 Mon 1 Sep创建:29: 07 2014
    • Jason ( 新建密钥) lightguard.jp@gmail.com ( ID: 0 xBEDFCFB30FB72D11创建于 Tue 24 Dec: 51: 51 2013 )
    • Wes wesbos@gmail.com ( ID: 0 x8C1F9282110E7CA0在 Tue 2 Sep创建:13: 12 2014 )
    • Rafael Benevides benevides@redhat.com ( ID: 0 x81C7CA49C57D4F5C在 Thu 2 Aug创建:14: 57 2012 )
    • Daniel Coughlin Daniel.coughlin86@gmail.com ( ID: 0 x91A225F08D1D811B在 Tue 2 Sep创建:19: 02 2014 )
    • :: ( ID: 0年 10月 15日创建的xBCE89FD63FBB22CF: 08: 22 2014 )
    • Adela Arreola aarreola@redhat.com ( ID: 0 xC946E35184EBDCF7在 Tue 7 Oct创建:26: 21 2014 )
    • Markus Eisele ( myfear ) markus@jboss.org ( ID: 0 xBE0AACE30C6FAC25创建于 Tue 16 Dec: 11: 42 2014 )
    • Ploski ray@redhat.com ( ID: 0 x4938A20304FE5450创建的:15: 52: 56 2015
    • James Parenti ( 红帽开发人员站点密钥) james@visuale.net ( ID: 0 x21BF1DFDC7A143E0在 Tue 10 Mar创建:33: 51 2015 )
    • 在Mon创建的0 x70E45BDE7C68C64D: 11: 09: 19 2015
    • Lukas Vlcek ( Lukas Vlcek ) lvlcek@redhat.com ( ID: 0 x3442A3D7BD324826创建的:22: 24: 48 2015
    • Oliver oshaw@redhat.com ( ID: 0 xD57A952A22E69562在 Mon 27 create创建:10: 09 2015 )
    • 0 x0C3FF1F29223684E创建于 Thu 22 Oct: 37: 43 2015 )
    • Vlastimil Elias velias@redhat.com ( ID: 0 x1104635722CBE84A创建的:20: 58: 18 2011
    • Rob Blake rblake@redhat.com ( ID: 0 xD7CE3349F64B3AB5在 21集市上创建:16: 17 2016 )
    • Rob Terzi rterzi@redhat.com ( ID: 0个x4FBE485C0F7F515F创建于 Thu 21 19: 22: 51 2016
    • R Hamilton ian.hamilton@rubygemtsl.co.uk ( ID: 0 xA8B212D4D48C38CE在 Mon 25 Apr创建:14: 17 2016 )
    • Redhat开发人员 CI (。Redhat开发人员的关键字) redhat-developers-ci@redhat.com 插件( ID: 在 Wed Wed创建的0 x8C622DEDD25F49F5: 25: 27: 02 2016 )
    • Jim Applebee japplebe@redhat.com ( ID: 0 xE8DCBAF94F5923D9在 Fri 22 2016年月 11: 11: 23 ) 创建
    • Luke Dary ldary@redhat.com ( ID: 0 x90236EFBD2509930在 Thu 15 2016年月 08: 32: 40 ) 创建

    注意:如果在文件中添加了新的收件人,请确保更新上面的列表。

    更新临时集成分支

    developers.stage.redhat.com 承载一个站点的构建,该站点使用下载管理器和KeyCloak的临时实例。 这种环境的目的是测试后端服务的新版本,然后再投入生产。

    有时,这里构建还用于长期的网站更改,需要由更广泛的团队测试,以便在生产之前。 虽然大部分时间,它只是部署了 master 代码。

    使用临时分支时,更新分支最简单的方法是将'母版'从提升到新的长期运行分支。 如果没有合并冲突,则可以简单地合并。

    如果存在合并冲突,则需要执行以下步骤来修复冲突:

    如果你的笔记本电脑上还没有获取这里分支,请运行:

    
     git fetch upstream
    
    
     git checkout -b <branch name> upstream/<branch name>
    
    
    
    

    现在合并主分支:

    
     git merge upstream/master
    
    
    
    

    修复任何合并冲突

    将分支推送到你的fork。

    
     git push <your fork alias> <branch name>
    
    
    
    

    在 upstream 中将一个PR从分支提升到长期运行的分支。 注意,公关测试将失败,因为他们不期望在'母版'上引发一个关联,而不是。

    常见问题

    这里区域文档用于解决常见问题:

    用于 nil:NilClass的'未定义的方法` []''

    如果在 Docker 中运行,你可能会得到错误:

    
    Internal Server Error
    
    
    
    undefined method `[]' for nil:NilClass
    
    
    
    

    这是系统 [ https://issues.jboss.org/browse/RHD-1365 ]的当前问题。 如果你收到这里错误,请停止,然后删除 Docker 容器。 因此,对于每个容器id运行

    
    docker kill ALL_THE_IDs
    
    
    docker rm ALL_THE_IDs
    
    
    
    

    如果你想出更好的解决方法,请更新。

    非法指令:4'

    在老的mac平台上有一个问题,其中组合将不会运行。 唯一的办法是通过( python 管理器)的pip包安装 docker。 这可以按如下方式执行:

    sudo easy_install pip
    sudo pip install docker-compose

    Docker'没有地址'

    如果消息'没有 Docker 地址( resolv:: resolverror ) 出错,你需要确保将主机'Docker'作为别名添加到/etc/hosts 文件中的localhost。 这里文档的Docker 部分提供了这里说明的说明。

    open打开的文件太多"

    这可能是由于缺少文件描述符造成的。 目前仅在苹果机上看到。 有关如何修复的信息,请参见以下内容: http://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7-1

    出现错误: getaddrinfo: nodename或者servname提供,或者不知道"

    "打开文件太多open相同"

    "无法解密保管库( gpgme:: 错误:: badpassphrase )"

    如果使用 GNU,有时你没有弹出一个弹出请求密码。 这将导致出现以下错误: Unable to decrypt vault (GPGME::Error::BadPassphrase) 要修复,请使用以下网址中的说明: https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html

    "ssl_connect returned=1 errno=0 state=SSLv3读取服务器证书 B: 证书验证失败"

    如果收到这里错误,可能是因为你的SSL证书文件过期了。 你可以通过以下方式修复这里问题:

    或者,有关如何修复的信息,请参见以下内容: http://railsapps.github.io/openssl-certificate-verify-failed.html


    COM  Source  RED  Sources  Redhat  
    相关文章