小编Ash*_*hik的帖子

如何从github操作读取docker-compose文件和package.json文件的环境变量?

从我的 docker-compose 文件中我必须读取一个环境变量。在本地,我可以像这样读取该变量:ENV_FILE=.env docker-compose -f docker-compose.dev.prisma.yml up --build 但由于 .env 文件位于 .gitignore 中,GitHub 操作无法获取该文件。我怎样才能阅读它们?

我的 package.json 文件中几乎有同样的问题。我需要从 npm 脚本中读取一些环境变量:

"start:backend": "wait-port $API_HOST:API_PORT && yarn start"
Run Code Online (Sandbox Code Playgroud)

我尝试过将这些变量添加到github的秘密中,但它没有得到这些变量。尽管期望这两个文件,但 envs 可以从 github 操作中完美读取。

github environment-variables docker-compose github-actions building-github-actions

3
推荐指数
1
解决办法
2661
查看次数

如何对时刻时区列表进行排序?

我想在下拉菜单中按升序显示时刻时区列表。默认情况下,它们按字母顺序排序。但是,我的要求是按 GMT 升序对它们进行排序。

疼痛前:

[
  '(GMT+00:00) Africa/Abidjan',
  '(GMT+00:00) Africa/Accra',
  '(GMT+03:00) Africa/Addis_Ababa',
  '(GMT+01:00) Africa/Algiers',
  '(GMT+03:00) Africa/Asmara',
  '(GMT+03:00) Africa/Asmera',
  '(GMT+00:00) Africa/Bamako',
  '(GMT+01:00) Africa/Bangui',
]
Run Code Online (Sandbox Code Playgroud)

排序后:

[
  '(GMT+00:00) Africa/Abidjan',
  '(GMT+00:00) Africa/Accra',
  '(GMT+00:00) Africa/Bamako',
  '(GMT+01:00) Africa/Algiers',
  '(GMT+01:00) Africa/Bangui',
  '(GMT+03:00) Africa/Addis_Ababa',
  '(GMT+03:00) Africa/Asmera',
  '(GMT+03:00) Africa/Asmara',
]

Run Code Online (Sandbox Code Playgroud)

javascript datetime momentjs moment-timezone

2
推荐指数
1
解决办法
2313
查看次数

Dockerfile:如何使用 curl 下载文件并复制到容器中

在这个例子中,我将 wait-for-it.sh 复制到 /app/wait-for-it.sh 但是,我不想将 wait-for-it.sh 保存在我的本地目录中。我想使用 curl 下载它,然后复制到 /app/wait-for-it.sh

FROM prismagraphql/prisma:1.34.8
COPY ./wait-for-it.sh /app/wait-for-it.sh
RUN chmod +x /app/wait-for-it.sh
ENTRYPOINT ["/bin/sh","-c","/app/wait-for-it.sh mysql:3306 --timeout=0 -- /app/start.sh"]
Run Code Online (Sandbox Code Playgroud)

我试过的是这个,但是如何wait-for-it.sh在使用 curl 命令下载文件后获得:

FROM prismagraphql/prisma:1.34.8

FROM node:11-slim

RUN apt-get update && apt-get install -yq build-essential dumb-init

RUN curl -LJO https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh

COPY wait-for-it.sh /app/wait-for-it.sh

RUN chmod +x /wait-for-it.sh

ENTRYPOINT ["/bin/sh","-c","/wait-for-it.sh mysql:3306 --timeout=0 -- /app/start.sh"]
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose prisma

2
推荐指数
2
解决办法
7729
查看次数

如何在本地主机中使用 nginx 运行 Express 服务器?

我想在本地主机中使用 Nginx 运行 Express 服务器。是否可以?如果可能的话我怎样才能实现这一目标?

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Server listening at http://localhost:${port}`))
Run Code Online (Sandbox Code Playgroud)

javascript nginx node.js express nginx-reverse-proxy

2
推荐指数
1
解决办法
7912
查看次数

React-responsive-carousel:如何为拇指提供固定高度?

我给图像指定了固定的高度。但现在的问题是,高度也适用于拇指。我怎样才能防止这种情况发生?

<Carousel width="600px" dynamicHeight={false}>
  {data?.book?.images.map((image, i) => (
    <img src={image} alt={`${i}`} className="h-128" />
  ))}
</Carousel>;
Run Code Online (Sandbox Code Playgroud)

javascript css carousel reactjs tailwind-css

1
推荐指数
1
解决办法
3596
查看次数

react-query:仅当状态变量改变时重新获取查询

我有一个选择选项菜单。因此,当用户选择一个选项时,我想使用该选项向服务器发送 GET/ 请求,并从服务器接收过滤后的数据。

这可以使用 useEffect(() => {// send the request}, [criteria]) 来实现

因为,useEffect 确保只有在 setCriteria 完成后请求才会发送到服务器。

但是,我正在使用react-query图书馆。所以说,它是不允许使用useQuery的内部useEffect

结果,请求在 setState 完成之前发送到服务器。这样,服务器将获得先前选择的值,而不是当前选择的值。

更改:

<select
  name="filter"
  value={criteria}
  onChange={async (e) => {
    setCriteria(e.target.value);
  }}
>
  <option>Most recent First</option>
  <option>Price: Low to High</option>
  <option>Price: High to Low</option>
</select>;
Run Code Online (Sandbox Code Playgroud)

获取帖子:

 const FetchPosts = async () => {
    const {
      data: { posts },
    } = await axios.get(`${process.env.API_URL}/api/posts`, {
      params: {
        filter: criteria,
      },
    });

    return posts;
  };

 useQuery("posts", FetchPosts);

 const …
Run Code Online (Sandbox Code Playgroud)

javascript caching state-management reactjs react-query

1
推荐指数
2
解决办法
4520
查看次数