Skip to content

Commit 3664832

Browse files
committed
Auto merge of #559 - pietroalbini:docker-server, r=pietroalbini
Fix the Docker image to also work for running the server
2 parents 674e4c2 + 7baa570 commit 3664832

File tree

7 files changed

+31
-13
lines changed

7 files changed

+31
-13
lines changed

Dockerfile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Build image #
66
#################
77

8-
FROM ubuntu:bionic AS build
8+
FROM ubuntu:focal AS build
99

1010
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
1111
ca-certificates \
@@ -50,18 +50,23 @@ RUN find /source -name "*.rs" -exec touch {} \; && cargo build --release
5050
# Output image #
5151
##################
5252

53-
FROM ubuntu:bionic AS binary
53+
FROM ubuntu:focal AS binary
5454

5555
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
5656
docker.io \
5757
build-essential \
5858
pkg-config \
5959
libssl-dev \
60-
ca-certificates
60+
ca-certificates \
61+
tini
6162

6263
RUN mkdir /workspace
6364
ENV CRATER_WORK_DIR=/workspace
6465
ENV CRATER_INSIDE_DOCKER=1
6566

67+
RUN mkdir /crater
68+
COPY config.toml /crater/config.toml
69+
WORKDIR /crater
70+
6671
COPY --from=build /source/target/release/crater /usr/local/bin/
67-
ENTRYPOINT ["crater"]
72+
ENTRYPOINT ["tini", "--", "crater"]

config.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ rustlearn = { skip-tests = true } # non-deterministic
100100
s_app_dir = { skip-tests = true } # flaky tests
101101
sacn = { skip-tests = true } # Tests just fail if RUST_TEST_THREADS > 1 -author
102102
sbrsk = { skip-tests = true } # flaky tests
103-
signatory-ring = { skip-tests = true } # flaky tests
104103
silk = { slow = true } # tests slow to run
105104
simd = { broken = true } # missing feature
106105
simple-munin-plugin = { skip-tests = true } # flaky test

src/cli.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use crater::toolchain::Toolchain;
2323
use failure::{bail, Error, Fallible};
2424
use rustwide::{cmd::SandboxImage, Workspace, WorkspaceBuilder};
2525
use std::collections::HashSet;
26+
use std::net::SocketAddr;
2627
use std::path::PathBuf;
2728
use std::str::FromStr;
2829
use std::time::Duration;
@@ -265,7 +266,15 @@ pub enum Crater {
265266
},
266267

267268
#[structopt(name = "server")]
268-
Server,
269+
Server {
270+
#[structopt(
271+
name = "bind",
272+
long = "bind",
273+
short = "b",
274+
help = "The address and port to bind to."
275+
)]
276+
bind: Option<SocketAddr>,
277+
},
269278

270279
#[structopt(name = "agent")]
271280
Agent {
@@ -589,9 +598,12 @@ impl Crater {
589598
bail!("missing experiment: {}", ex.0);
590599
}
591600
}
592-
Crater::Server => {
601+
Crater::Server { bind } => {
593602
let config = Config::load()?;
594-
server::run(config)?;
603+
server::run(
604+
config,
605+
bind.unwrap_or_else(|| ([127, 0, 0, 1], 8000).into()),
606+
)?;
595607
}
596608
Crater::Agent {
597609
ref url,

src/config.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ impl Config {
242242
}
243243

244244
#[cfg(test)]
245+
#[allow(clippy::trivial_regex)]
245246
impl Default for Config {
246247
fn default() -> Self {
247248
Config {

src/report/s3.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ pub fn get_client_for_bucket(bucket: &str) -> Fallible<Box<dyn S3>> {
7676
.sync()
7777
.context(S3Error::UnknownBucketRegion)?;
7878
let region = match response.location_constraint.as_ref() {
79-
Some(region) if region == "" => Region::UsEast1,
79+
Some(region) if region.is_empty() => Region::UsEast1,
8080
Some(region) => Region::from_str(region).context(S3Error::UnknownBucketRegion)?,
8181
None => return Err(S3Error::UnknownBucketRegion.into()),
8282
};

src/server/mod.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use crate::server::tokens::Tokens;
2020
use http::{self, header::HeaderValue, Response};
2121
use hyper::Body;
2222
use metrics::Metrics;
23+
use std::net::SocketAddr;
2324
use std::sync::{Arc, Mutex};
2425
use warp::{self, Filter};
2526

@@ -49,7 +50,7 @@ pub struct Data {
4950
pub metrics: Metrics,
5051
}
5152

52-
pub fn run(config: Config) -> Fallible<()> {
53+
pub fn run(config: Config, bind: SocketAddr) -> Fallible<()> {
5354
let db = Database::open()?;
5455
let tokens = tokens::Tokens::load()?;
5556
let github = GitHubApi::new(&tokens);
@@ -77,7 +78,7 @@ pub fn run(config: Config) -> Fallible<()> {
7778
data.reports_worker.spawn(data.clone());
7879
cronjobs::spawn(data.clone());
7980

80-
info!("running server...");
81+
info!("running server on {}...", bind);
8182

8283
let data = Arc::new(data);
8384

@@ -100,7 +101,7 @@ pub fn run(config: Config) -> Fallible<()> {
100101
resp
101102
});
102103

103-
warp::serve(routes).run(([127, 0, 0, 1], 8000));
104+
warp::serve(routes).run(bind);
104105

105106
Ok(())
106107
}

src/server/routes/webhooks/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ fn process_command(
8383
}
8484

8585
let command = line[line.find(' ').unwrap()..].trim();
86-
if command == "" {
86+
if command.is_empty() {
8787
continue;
8888
}
8989

0 commit comments

Comments
 (0)