我是码头工人的新手,所以这对你来说似乎是非常基本的 - 无论如何 - 它此刻吓坏了我.
我决定在容器上开发一个新的web项目,当然我想到了docker.完成教程并阅读一些Dockerfiles之后,我决定使用docker-compose.
我想要多个撰写文件,一个用于开发,一个用于生产等等.现在我设法使用3种不同的服务来编排基本的php/mysql/redis应用程序.主要的应用程序是基于PHP并在项目src中维护.Mysql和Redis只是配置了基本映像,不需要任何业务逻辑.
我可以建造容器并将它们带出来
建立:
docker-compose -f compose-Development.yml build
Run Code Online (Sandbox Code Playgroud)
达:
docker-compose -f compose-Development.yml up
Run Code Online (Sandbox Code Playgroud)
主应用程序容器中的许多文件都是由gulp(模板,css等)构建的,代码将存在于javascript和php中.
我注意到,当我更改文件时,我的应用状态不会改变.我将不得不重建并重新启动我的容器.
有了Vagrant的一些经验,我会在开发期间寻找某种共享源.但是我如何实现这一目标呢?
我的应用程序Vagrantfile(用于开发)看起来像这样:
FROM webdevops/php-nginx:7.1
COPY ./ /app
COPY docker/etc/ /opt/docker/etc
# php config...
RUN ln -sf /opt/docker/etc/php/php.Development.ini /opt/docker/etc/php/php.ini
WORKDIR /app/
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)
撰写文件:
version: "3"
services:
app:
build:
context: .
dockerfile: Dockerfile.Development
links:
- mysql
- redis
volumes:
- ./data/fileadmin:/app/public/fileadmin
- ./data/uploads:/app/public/uploads
env_file:
- docker/env/All.yml
- docker/env/Development.yml
ports:
- "80:80"
restart: always
# Mysql Container
mysql:
build:
context: docker/mysql/
dockerfile: …Run Code Online (Sandbox Code Playgroud) 一点背景:我是 docker 新手,还不知道任何最佳实践。我的任务是创建一个基于 php 的网络服务,我决定使用 docker-compose 进行配置。
因为我们都是优秀的开发人员,所以我们知道 - 现在没有使用 Composer 构建 php 应用程序的方法。
我应该在构建中安装依赖项吗?因此,通过将其添加到我的 Dockerfile 中:
RUN cd /app && composer install --no-interaction --prefer-source --optimize-autoloader
Run Code Online (Sandbox Code Playgroud)
或者我应该在开发过程中安装依赖项并构建包含依赖项的容器映像?
我只知道一种不这样做的方法:在开发机器上本地安装依赖项,然后构建容器。但是“最佳实践”会是什么样子呢?
而且 - 因为我是这个领域的新手 - 我将如何为我的应用程序服务容器运行“composer require some/package”?
我还注意到一条消息“不要以 root/超级用户身份运行 Composer!” 在构建容器时。我添加COMPOSER_ALLOW_SUPERUSER=1到我的 Env 文件(如这里所示),但此消息仍然出现。
是否可以不在 docker 容器中以 root 身份执行 composer install?我可以忽略该消息吗?
提前致谢,菲利普
我只是第一次集成流来静态检查我的JavaScript源。
我正在努力寻找错误流,但我无法自行解决。关于使用es6类和继承。更具体地说,我创建了一些react组件,它们应该继承一些方法。
我有一个标注组件,它表示未指定严重性的标注消息。为了使事情更简单一些,我想到了提供一个ErrorMessage组件,该组件继承了Callout组件。我的课程结构看起来像:
React.Component
> AbstractComponent (here i add some project-wide helpers for i18n and so on
> Callout (this represents a pretty message on the screen)
> ErrorMessage (this represents an error)
Run Code Online (Sandbox Code Playgroud)
流程告诉我:
Error ?????????????????????????????????????????????????????????????????? src/js/Components/Generic/ErrorMessage.js:14:43
statics of Callout [1] is not a polymorphic type.
11? icon: string
12? };
13?
[1] 14? export default class ErrorMessage extends Callout<Props> {
15?
16? static get defaultProps(): Props {
17? return {
Run Code Online (Sandbox Code Playgroud)
该部分Callout<Props>突出显示
我已经为标注类定义了道具类型,所以这可能是问题所在,但我不能自己解决。
下面几行引发了类似的错误,在该行中,我尝试通过解决super.content(内容是Callout的get-method)来访问父方法。
提前致谢
更新:为什么要使用类继承? …
我有一个很常见的问题。我的许多项目都使用nodejs,一些用于业务逻辑,其他仅用于某些构建任务。
我需要在不同的项目中使用不同的运行时,我的电子应用程序之一需要节点7.10.0,典型的构建套件需要节点8.x。
现在我知道-我可以在计算机上全局使用sudo n 7.10.0或sudo n latest切换运行时(对于那些不知道的人-看看“ n”)
无论如何,IMO这不是那么方便(有时,我需要在切换版本后重建所有模块,通常我忘了切换等等)。有没有一种方法告诉节点要使用哪个解释器?我可以使用.npmrc项目目录中的文件来强制该子目录中的特定nodejs版本吗?
我完全搜索了此内容(npmrc节点版本),但没有找到足够的幸运。
我正在构建一个基于反应的电子应用程序,并偶然发现了日期字段的问题。
当使用input与现场type='date'的onChange事件,不会触发。此外,似乎我无法输入完整日期,一旦我修改了它重置的日期的第三个部分。
因此,默认状态(呈现的输入字段,对值的反应状态为“”)是 tt.mm.jjjj(德语),我认为它会转换为 mm/dd/yyyy。我可以聚焦该字段并输入 01 > 01,然后显示:01.01.jjjj。一旦我输入了这一年的一个数字,一切都会恢复到 tt.mm.jjjj
我用 input[type=date] 元素创建了一个空的 html 文件,它在铬中工作,所以它似乎是反应组件,这是有问题的。
我的组件看起来像:
<input
type="date"
className="input-group-field"
name="birthdate"
id="birthdate"
value={this.state.birthDate}
onChange={event => this.setState({birthdate: event.target.value})}
/>
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
devops ×2
docker ×2
reactjs ×2
chromium ×1
composer-php ×1
electron ×1
flowtype ×1
html ×1
javascript ×1
linux ×1
n ×1
node.js ×1
npm ×1
php ×1
provisioning ×1